APN设置中界面显示及默认接入点配置

[DESCRIPTION]
 
 
 Android M上apn设置中界面显示及默认接入点配置
 
[SOLUTION]
 
apn设置中的显示界面的apn是来源于apns-conf.xml中配置的对应运营商(根据mccmnc查询)
的所有apn。
 
在M上是根据以下顺序显示的

/packages/apps/Settings/ext/src/com/mediatek/settings/ext/DefaultApnSettingsExt.java

@Override

public String getApnSortOrder(String order) {

return order;

}

这里的order默认排序规则是根据以下位置得来的:

/frameworks/opt/telephony/src/java/android/provider/Telephony.java
public static final class Carriers implements BaseColumns {
/**
* The default sort order for this table.
*/
public static final String DEFAULT_SORT_ORDER = "name ASC";
}

"name ASC"表示正序排列,即按照

apn name的排序,例如在apns-conf.xml中配置如下apn,那么显示时

TATA DOCOMO DIVE-IN一定在TATA DOCOMO INTERNET之前

(TATA DOCOMO DIVE-IN被选为默认接入点:TATA DOCOMO DIVE-IN < TATA DOCOMO INTERNET)

<apn carrier="TATA DOCOMO INTERNET"
mcc="405"
mnc="025"
apn="TATA.DOCOMO.INTERNET"
type="default,supl"
/>

<apn carrier="TATA DOCOMO DIVE-IN"
mcc="405"
mnc="025"
apn="TATA.DOCOMO.DIVE.IN"
proxy="10.124.94.7"
port="8080"
type="default,supl"
/>

如果想按倒序排列显示,修改"name ASC"为"name DESC";

如果想按apns-conf.xml中配置的依次顺序显示,在getApnSortOrder中返回null即可

没有默认值选项,只是Name排序后 谁第一位 谁就是默认

如我中国联通  3g 网络加个空格 默认第一 中国联通 Wap 网络 因为mcc 不在中国 所以不显示


  <apn carrier="中国联通  3g 网络 (China Unicom)"
      mcc="460"
      mnc="01"
      apn="3gnet"
      type="default,supl"
      protocol="IPV4V6"
  />


  <apn carrier="中国联通 Wap 网络 (China Unicom)"
      mcc="454"
      mnc="07"
      apn="3gwap"
      type="default,supl"
      proxy="10.0.0.172"
      port="80"
      protocol="IPV4V6"
  />


  <apn carrier="中国联通 3g 彩信 (China Unicom)"
      mcc="460"
      mnc="01"
      apn="3gwap"
      mmsc="http://mmsc.myuni.com.cn"
      mmsproxy="10.0.0.172"
      mmsport="80"
      type="mms,default"
      protocol="IPV4V6"
  />



版权声明:本文为wds1181977原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。