我有一對Android應用程序。一個是免費的「閱讀器」應用程序,另一個是在數據的子目錄中爲文本文件付費的「數據」應用程序。在果凍豆上訪問其他Android應用程序的資產
的閱讀器應用程序使用下面的代碼來訪問數據的應用程序的文本文件:
Intent myIntent = new Intent("myintent");
List<ResolveInfo> dataPacks = packageManager.queryIntentActivities(myIntent, 0);
String packageName = dataPacks.get(0).activityInfo.packageName
Resources res = packageManager.getResourcesForApplication(packageName);
AssetManager assets = res.getAssets();
String[] dataFiles = assets.list("Data");
這一直工作正常,但使用谷歌Play下載到果凍豆的應用程序不工作(數據文件是空的)。如果應用程序是直接從電子郵件安裝的,那麼很好,所以我懷疑我的問題與最近Google Play的安全更改有關。然而,據稱這些已被撤銷,但我仍然有問題。
任何人都可以闡明什麼是錯誤的? (不幸的是我沒有果凍豆設備)
或者,有人可以建議一個更好的機制來訪問數據應用程序的txt文件?
感謝
昨天檢查了這個。正如預期的那樣,資產(/ res/asset)打包在APK的私有部分中,因此您無法直接從其他應用訪問它們。你也可以在模擬器上進行測試:你需要使用'-l'(正向鎖定)選項進行安裝:'adb install -l myapp.apk' –
謝謝Nik,我改寫了我的代碼來使用ContentProvider它正在爲我工作..還沒有機會釋放到野外,看看它是否修復了我原來的問題。 –