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 - 移动网络设置菜单(果冻豆)

问题是将“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 回答