2012-08-27 7 views
5

私のアプリはモバイルネットワーク設定のアクティビティを開く必要があります。Androidのモバイルネットワークの設定4.1

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

任意のアイデア:すべては

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); 

スタックトレースクラッシュの後に設定を開くしようとした後にクラッシュのAndroid 4.1を持つデバイスを除いて正常に動作しますか?マニフェストのせいかもしれませんか?

UPDATE: Android - Mobile network settings menu (Jelly Bean)

事は "com.android.phone.Settings" に "com.android.phone.MobileNetworkSettings"

を変更することです:

は問題がここで解決したように見えます

+0

[これとは対照的に、一致するアクティビティが存在しない可能性があるため、] [http://developer.android .com/reference/android/provider/Settings.html#ACTION_DATA_ROAMING_SETTINGS) – Andrei

+0

問題はNexus Sで見つかりました – Alex

答えて

7

は、私はあなたがこの事は、Android 4.1.2で私のために働いている

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

、を試してみて考えますは4.1.2でこの問題を修正している可能性があります

関連する問題