我想在我的双SIM卡设备上执行网络提供商搜索。到目前为止,我一直在通过打开“网络设置”页面中的“可用网络”或“网络运营商”菜单项来做到这一点。我一直在这么做,目的是:
intent.setComponent(ComponentName.unflattenFromString("com.android.phone/.NetworkSetting"));这将直接打开正确的活动,并自动开始搜索可用的网络。
然而,我现在使用的是双SIM卡设备,每当我出于上述意图打开该活动时,它都会在该活动的"SIM2“选项卡上打开,因此我收到一个搜索可用网络的错误(SIM2为空,但这无关紧要,因为我想在SIM1中使用该功能)。有没有办法选择在哪个SIM卡下打开活动?或者,在主SIM卡上打开搜索网络所需的活动的适当方式?
我一直在找,这不是很常见的事情,所以实际上什么也没找到。
发布于 2015-01-19 20:04:18
这段代码适用于我的中国A918 DualSim安卓手机:
Intent intent = new Intent();
intent.setClassName("com.android.phone", "com.mediatek.settings.MultipleSimActivity");
PackageManager packageManager = getPackageManager();
// check if intent is available on device:
List list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0) {
// set Intent to start after SIM card selection:
intent.putExtra("TARGET_CLASS", "com.android.phone.NetworkSetting");
intent.putExtra("ITEM_TYPE", "PreferenceScreen");
} else {
// run default android network settings intent
intent.setClassName("com.android.phone", "com.android.phone.NetworkSetting");
}
startActivity(intent);在安卓DualSim手机中,你需要运行不同的意图才能进入NetworkSettings,因为当插入两张SIM卡时,你应该能够选择第一张或第二张卡。
在我的例子中,这是com.mediatek.settings.MultipleSimActivity。如果不起作用,请查看ADB日志,当通过android系统设置进入“可用网络”时启动了哪个意图
https://stackoverflow.com/questions/26713876
复制相似问题