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

Waqas の言うことは正しいです。何らかの形で共有されない限り、別のアプリケーションのデータ/共有設定を使用することはできません。ただし、両方のアプリケーションにアクセスできる場合は、次を使用しないでください。

PreferenceManager.getDefaultSharedPreferences();

デフォルトでは MODE.PRIVATE が使用されるため、初期化されたアプリからのみ共有設定を読み取ることができます。

両方のアプリケーションにアクセスできる場合は、次のいずれかを使用できます。

PreferenceManager.setDefaultValues();

デフォルトのモードを変更するか、デフォルトの使用を取得する代わりに、名前とモードで設定を使用するには:

getSharedPreferences(NAME, MODE);

ドキュメントで詳細を読んで、ニーズに合うかどうかを判断してください。

于 2013-03-14T08:47:26.703 に答える
0

何をするにしても、次の場合を除き、他のアプリケーションのデータにアクセスすることはできません:

  • アプリケーション自体は、ContentResolverデータを利用できるようにするためのインターフェイス (ブロードキャスト、サービス バインディングなど) を提供します。
  • お使いのデバイスはルート化されているため、スーパーユーザー権限でデータ ファイルにアクセスます
于 2013-03-14T08:13:15.903 に答える