我想分享兩個應用之間的數據庫文件中的兩個應用程序之間共享文件,假設我有一個應用程序和App B.應用一種我創建數據庫和它使用的應用程序A和應用B以及。但是,當我卸載我的應用程序我的數據庫也被刪除,但我想保留該數據庫,如果我的應用程序B安裝,如果兩者都被刪除它應該從存儲中刪除數據庫。我想保持我的數據庫始終在內部存儲上。安卓:無需使用外部存儲
0
A
回答
1
0
@ R.Pradhan ..是的,你可以在兩個應用程序之間但共享一個數據庫,有一個條件。
如果你想使用的應用程序之間的數據(只要它們由同一發行人發行的),就需要在這兩個應用程序的AndroidManifest.xml中指定一個共享的用戶ID。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:sharedUserId="my.app" ... >
共享用戶標識需要是至少有一個點分隔符的字符串。
其餘是容易的,你不需要更動數據庫路徑。只需在兩個應用程序中使用相同的DBAdapter。在託管數據庫的應用程序中,使用本地上下文調用DBAdapter。
DBadapter hostDBAdapter = new DbAdapter(getApplicationContext());
performerDBadapter.open();
在第二個應用程序中,使用數據庫託管應用程序的上下文訪問數據庫。 首先,定義共享上下文:
Context sharedContext = null;
try {
sharedContext = this.createPackageContext("replace.with.host.package.name", Context.CONTEXT_INCLUDE_CODE);
if (sharedContext == null) {
return;
}
} catch (Exception e) {
String error = e.getMessage();
return;
}
然後與共享上下文打開將對DBAdapter:
DbAdapter sharedDBadapter = new PerformerDbAdapter(sharedContext);
sharedDBadapter.open();
最後要注意,如果你的數據庫中存在先前在清單中設置共享用戶ID ,您將需要卸載/重新安裝物理設備上的應用程序,以免將自己鎖定在數據庫之外(sqlite錯誤14)。另一方面,模擬器可能證明更寬容。最重要的是,如果您的應用在Android市場上發佈,則在事後才能設置共享用戶ID不起作用。
希望這會有所幫助。
相關問題
- 1. 存儲和安卓
- 2. 安卓解析內部存儲輸出
- 3. 使用外部存儲?
- 4. Android內存需要在外部存儲上安裝apk嗎?
- 5. 安卓:不能安裝保存到內部存儲器
- 6. 安卓:使外部存儲器上的文件夾私有或受保護
- 7. 設置應用程序的自定義內部存儲需求 - 安卓android
- 8. 外部存儲
- 9. 安卓:訪問內部存儲不利用上下文
- 10. 從外部Nix存儲庫安裝
- 11. 外部存儲到內部存儲
- 12. 安卓原生mp3資源原生安卓媒體存儲
- 13. 使用外部存儲器時的logcat
- 14. 安卓更新部件外觀
- 15. 安卓到外部藍牙輪詢
- 16. 在外部存儲
- 17. XenServer外部存儲
- 18. 在外部存儲
- 19. Android外部存儲
- 20. phonegap外部存儲
- 21. 需要幫助安卓部件
- 22. 的Android無法訪問外部存儲
- 23. 內部與外部存儲
- 24. Javascript安卓系統 - sdcard內部存儲的rread文件
- 25. 保存到外部存儲
- 26. 無法使用NDK從外部存儲器讀取
- 27. 使用osmdroid而無法訪問外部存儲
- 28. 安卓數組數據存儲問題
- 29. 問題在存儲和安卓
- 30. 獲取存儲在SD卡+安卓
不可能的數據庫是專用.. !! –