访问其他应用程序的共享首选项

时间:2013-03-14 08:05:01

标签: android android-intent

我用代码调用不同的应用程序:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.mypackage","com.mypackage.UI.SplashActivity"));
intent.putExtra("URI", path);
startActivity(intent);

然后在被调用的应用程序中有代码:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int currentResolution = prefs.getInt(Values.CURRENT_RESOLUTION_SETTING, 1200);

它总是给我1200.我认为是因为我不直接启动应用程序。如何访问首选项?

2 个答案:

答案 0 :(得分:0)

无论您做什么,除非:

,否则您无法访问其他应用程序的数据
  • 应用程序本身提供了一个界面(如ContentResolver, 广播或服务绑定)以使其数据可用
  • 您的设备已植根,因此您可以使用超级用户权限访问其数据文件

答案 1 :(得分:0)

Waqas说的是正确的,你不能使用其他应用程序数据/共享偏好,除非它以某种方式共享。但是,如果您有权访问这两个应用程序,则不应使用:

PreferenceManager.getDefaultSharedPreferences();

由于默认使用MODE.PRIVATE,这意味着您只能从其初始化的应用中读取共享首选项。

如果您可以访问这两个应用程序,则可以使用:

PreferenceManager.setDefaultValues();

为了更改默认模式或使用名称和模式的首选项而不是默认使用:

getSharedPreferences(NAME, MODE);

您可以在docs中阅读更多内容,并了解它是否符合您的需求。