[英]Direct file access (SQlite database) with Android 10+
我有 2 個應用程序 A 和 B。A 可以將數據下載到 B 擁有的 sqlite 數據庫。直到現在我問用戶 WRITE_EXTERNAL_STORAGE 權限,A 可以直接寫入 B 的數據庫,因此使用事務以避免更改數據庫,如果用戶取消該過程。
使用 Android 10 直接文件訪問似乎不再可能,因為我們被迫使用 ****** SAF ...
為了仍然可以正常工作,我更新了我的應用程序以使用 ContentProvider。 但是,我不再能夠使用事務來提供取消功能:數據太重而無法放入內存中,我無法使用 ContentProvider 的批量插入方法(如果我沒記錯的話?)。
我被卡住了嗎? 或者是否有解決方案可以在我擁有的兩個應用程序之間授予直接文件訪問權限? 理想情況下,他的流程是這樣的:
那可能嗎?
編輯:我需要訪問 File 對象,以便使用 SqliteDatabaseOpenHelper 類,因此 grantUriPermission 不會幫助我。
有沒有一種解決方案可以在我擁有的兩個應用程序之間授予直接文件訪問權限?
不。
我被卡住了嗎?
你可以這樣做:
“通過某種方式”可能是:
insert()
或update()
與您的ContentProvider
startService()
傳遞的命令bindService()
和對 B 的服務公開的 AIDL 定義的 API 的調用Intent
有明確的Intent
A 有一個“用戶交易”,可以根據用戶交互停止下載。 下載完成后,B 可以執行數據庫事務以使用下載內容的詳細信息更新自己的數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.