您好我想用以下代码打开移动网络设置:
Intent intentSettings = new Intent();
intentSettings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intentSettings.setAction(Settings.ACTION_DATA_ROAMING_SETTINGS);
cont.startActivity(intentSettings);
但它给了我这个错误。任何人的想法?
12-10 11:17:34.902: ERROR/AndroidRuntime(623): android.content.ActivityNotFoundException: No Activity found to handle Intent { action=android.settings.DATA_ROAMING_SETTINGS flags=0x4000000 }
由于
答案 0 :(得分:16)
要使其正常工作,请将您的意图创建更改为以下代码:
Intent intent=new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS);
ComponentName cName = new ComponentName("com.android.phone","com.android.phone.Settings");
intent.setComponent(cName);
基本上,android清单需要一个组件过滤器。
答案 1 :(得分:4)
您可以尝试删除FLAG_ACTIVITY_NEW_TASK
,在这种情况下可能不需要,并查看是否有帮助。
如果这没有帮助,那么:
<强>更新强>
看来答案是上面的第三个子弹。虽然ACTION_DATA_ROAMING_SETTINGS
位于文档中,但“设置”应用程序本身没有<intent-filter>
。
我将在Android 2.3源代码发布时进行检查,看看是否会改变故事。如果没有,我将提交一个错误,因为它是文档错误或设置应用程序错误,恕我直言。
答案 2 :(得分:1)
对于ACTION_NETWORK_OPERATOR_SETTINGS,它的工作方式相同,只需添加以下组件:
Intent intent=new Intent(Settings.ACTION_NETWORK_OPERATOR_SETTINGS);
ComponentName cName = new ComponentName("com.android.phone","com.android.phone.Settings");
intent.setComponent(cName);