2014-11-03 77 views
0

我想在我的雙SIM設備上執行網絡提供商搜索。 到目前爲止,我一直在打開「網絡設置」頁面中的「可用網絡」或「網絡運營商」菜單項。 我一直在使用這種意圖做:在雙SIM設備上以編程方式/打開移動/可用網絡設置搜索網絡提供商

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

這直接打開正確的活動,並自動開始尋找可用的網絡。

但是,我現在在雙SIM卡設備上,每當我按照上述意圖打開該活動時,它就會在活動的「SIM2」選項卡上打開,因此我收到錯誤以搜索可用網絡(SIM2是空的,但沒關係,因爲我需要SIM1的這種功能)。 有什麼方法可以選擇在哪個SIM下打開活動?或者在主SIM上打開搜索網絡所需活動的正確方法?

我一直在尋找,這不是一件很常見的事情,所以沒有發現實際上。

+0

您可以嘗試使用'MultiSim'庫: http://stackoverflow.com/a/41544422/ 1665964 – 2017-01-09 11:34:56

回答

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手機需要運行不同的意向進入NetworkSettings已,因爲當插入兩張SIM卡,你應該有選擇的能力第一張或第二張牌。我的情況是com.mediatek.settings.MultipleSimActivity。如果它不工作,檢查ADB日誌哪些意圖通過Android系統進入「可用網絡」時啓動設置