6

アプリでモバイル ネットワーク設定アクティビティを開く必要があります。設定を開こうとするとクラッシュする Android 4.1 を搭載したデバイスを除いて、すべて正常に動作します。

Intent intent = new Intent(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS);
final ComponentName cName = new ComponentName("com.android.phone", "com.android.phone.Settings");
intent.setComponent(cName);
startActivity(intent);

クラッシュ後のスタック トレース:

java.lang.SecurityException: Permission Denial: starting Intent { act=android.settings.DATA_ROAMING_SETTINGS cmp=com.android.phone/.Settings } from ProcessRecord{41b83198 ...

何か案は?マニフェストのせいでしょうか?

アップデート:

ここで問題が解決したようです: Android - モバイル ネットワーク設定メニュー (Jelly Bean)

問題は、「com.android.phone.Settings」を「com.android.phone.MobileNetworkSettings」に変更することです

4

1 に答える 1

7

試してみる必要があると思います

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.provider.Settings.ACTION_DATA_ROAMING_SETTINGS);
startActivity(intent);

このことは、Android 4.1.2で機能しています。4.1.2でこの問題を修正した可能性があります

于 2012-11-02T15:01:16.247 に答える