在双SIM卡设备上以编程方式/打开移动/可用网络设置搜索网络提供商

时间:2014-11-03 11:59:45

标签: android android-4.4-kitkat dual-sim

我想在我的双卡设备上执行网络提供商搜索。 到目前为止,我一直在打开“网络设置”页面中的“可用网络”或“网络运营商”菜单项。 我一直在使用这个意图:

intent.setComponent(ComponentName.unflattenFromString("com.android.phone/.NetworkSetting"));

这直接打开了正确的活动,并自动开始搜索可用的网络。

但是,我现在正在使用双SIM卡设备,每当我按上述意图打开该活动时,它就会在活动的“SIM2”标签上打开,因此我收到错误,搜索可用的网络(SIM2是空的,但没关系,因为我想要SIM1的功能)。 有没有办法选择打开活动的SIM卡?或者打开在主SIM卡上搜索网络所需活动的正确方法?

我一直在寻找并且这不是很常见的事情,所以实际上没有找到任何东西。

1 个答案:

答案 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系统设置

进入“可用网络”时检查ADB日志中启动的Intent