1

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

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。我认为这是因为我不直接启动应用程序。如何访问首选项?

4

2 回答 2

0

无论您做什么,您都无法访问其他应用程序的数据,除非:

  • 应用程序本身提供了一个接口(如ContentResolver广播或服务绑定)以使其数据可用
  • 您的设备已植根,因此您可以使用超级用户权限访问其数据文件
于 2013-03-14T08:13:15.903 回答
0

Waqas 说的是正确的,除非以某种方式共享,否则您不能使用其他应用程序数据/共享首选项。但是,如果您可以访问这两个应用程序,则不应使用:

PreferenceManager.getDefaultSharedPreferences();

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

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

PreferenceManager.setDefaultValues();

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

getSharedPreferences(NAME, MODE);

您可以在文档中阅读更多内容,也许可以确定它是否适合您的需求。

于 2013-03-14T08:47:26.703 回答