我想在我的双卡设备上执行网络提供商搜索。 到目前为止,我一直在打开“网络设置”页面中的“可用网络”或“网络运营商”菜单项。 我一直在使用这个意图:
intent.setComponent(ComponentName.unflattenFromString("com.android.phone/.NetworkSetting"));
这直接打开了正确的活动,并自动开始搜索可用的网络。
但是,我现在正在使用双SIM卡设备,每当我按上述意图打开该活动时,它就会在活动的“SIM2”标签上打开,因此我收到错误,搜索可用的网络(SIM2是空的,但没关系,因为我想要SIM1的功能)。 有没有办法选择打开活动的SIM卡?或者打开在主SIM卡上搜索网络所需活动的正确方法?
我一直在寻找并且这不是很常见的事情,所以实际上没有找到任何东西。
答案 0 :(得分:0)
此代码适用于我的中国A918 DualSim Android手机:
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);
在Android DualSim手机中,您需要运行不同的Intent才能进入NetworkSettings,因为当插入两张SIM卡时,您应该可以选择第一张或第二张卡。
在我的情况下,这是com.mediatek.settings.MultipleSimActivity
。如果它不起作用,请在通过android系统设置