android网络切换问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012259618/article/details/52195766

一找到首选项的选择XML文件

private ListPreference mButtonPreferredNetworkMode;

mButtonPreferredNetworkMode =(ListPreference) prefSet.findPreference(

                BUTTON_PREFERED_NETWORK_MODE);

布局文件Msim_network_sub_setting.xml:

<ListPreference

       android:key="preferred_network_mode_key"

       android:title="@string/preferred_network_mode_title"

       android:summary="@string/preferred_network_mode_summary"  

       android:entries="@array/preferred_network_mode_choices"

        android:entryValues="@array/preferred_network_mode_values"

       android:dialogTitle="@string/preferred_network_mode_dialogtitle"/>

上述方式的设置列表值是通过直接在布局文件里面设置所有的默认选项,然后可以在程序中进行重新复制

Strings.xml packages\services\telephony\res\values

<string-array name="preferred_network_mode_values"  translatable="false">

       <item>"23"</item>

       ……………………………

       <item>"2"</item>

       <item>"1"</item>

       <item>"0"</item>

</string-array>

<string-arrayname="preferred_network_mode_choices"translatable="false">     

       <item>@string/preferred_network_mode_lte_cdma_evdo_gsm_choice</item>

        …………………………………………………

       <item>@string/preferred_network_mode_wcdma_only_choice</item>

        <item>@string/preferred_network_mode_gsm_only_choice</item>

       <item>@string/preferred_network_mode_gsm_wcdma_preferred_choice</item>

    </string-array>

二判断哪种运营商

1 MSimMobileNetworkSubSettings.java

\\packages\services\telephony\src\com\android\phone\msim

  /**begin add by liting in 20151212**/

private void changeNeworkTypeList(Stringnumber){

if("46003".equals(number)||"46005".equals(number)||"46011".equals(number)){

         mButtonPreferredNetworkMode.setEntries(R.array.preferred_china_telecom_choices);             mButtonPreferredNetworkMode.setEntryValues(R.array.preferred_china_telecom_values);

 }elseif("46000".equals(number)||"46002".equals(number)||"46007".equals(number)){

          mButtonPreferredNetworkMode.setEntries(R.array.preferred_china_mobile_choices);

     mButtonPreferredNetworkMode.setEntryValues(R.array.preferred_china_mobile_values);               

 }elseif("46001".equals(number)||"46006".equals(number)||"46009".equals(number)){            mButtonPreferredNetworkMode.setEntries(R.array.preferred_china_union_choices);              mButtonPreferredNetworkMode.setEntryValues(R.array.preferred_china_union_values);                           

}else{

    mButtonPreferredNetworkMode

           .setEntries(R.array.preferred_network_mode_choices);

    mButtonPreferredNetworkMode.setEntryValues(

            R.array.preferred_network_mode_values);

       }

    }

/**end by liting in 20151212**/

通过setEntries和setEntryValues方法设置另外的值。

2 找到plmn

TelephonyManager.getDefault().getIccOperatorNumeric(SubscriptionManager.getSubId(0)[0]);

TelephonyManager mTelephonyManager =(TelephonyManager)

getSystemService(Service.TELEPHONY_SERVICE);

         Stringimsi =

mTelephonyManager.getSubscriberId(SubscriptionManager.getSubId(mPhone.getPhoneId())[0]);

String ICCID =

mTelephonyManager.getSimSerialNumber(SubscriptionManager.getSubId(mPhone.getPhoneId())[0]);

猜你喜欢

转载自blog.csdn.net/u012259618/article/details/52195766