[英]Read shared preference of another android application
我需要訪問另一個應用程序的共享首選項文件。 ( 設備已植根! )目前,我似乎面臨權限問題。 這是我運行的當前代碼:
Context con = createPackageContext("com.sam.sample", CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPref = con.getSharedPreferences("namefile", MODE_PRIVATE);
Map data = sharedPref.getString("name", "");
Log.d("Name", "name:" + name);
當我運行此代碼時,出現以下錯誤:
嘗試在未經許可的情況下讀取首選項文件/data/data/com.sam.sample/shared_prefs/namefile.xml
我也嘗試過運行su
命令,但是我不希望通知用戶我想通過chmod 775
對XML文件進行讀取訪問。
任何幫助表示贊賞。
為此,在“ com.sam.sample”中創建SharedPreference時,應使用Context.MODE_WORLD_READABLE模式創建它。 因此,如果您具有“ com.sam.sample”應用程序的代碼,則其外觀應類似於以下內容
SharedPreferences prefs = getSharedPreferences("namefile",
Context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("name", strShareValue);
editor.commit();
另請注意,不建議將模式更改為Context.MODE_WORLD_READABLE,因為這可能會導致安全漏洞。 從NOS開始,這將引發SecurityException。 更多信息:-
https://developer.android.com/reference/android/content/Context.html#MODE_WORLD_READABLE
理想情況下,應使用ContentProvider。
例如,您的ContentProvider的查詢功能可以是
MatrixCursor cursor = new MatrixCursor(new String[] { "name" }, 1); cursor.addRow(new Object[] { readSharedPreference() }); return cursor;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.