Android eSIM卡识别到后没有APN

esim卡识别到后没有APN,需要手动配置(参考)。
查询到卡IMSI开头为46006.

查询命令:service call iphonesubinfo 7
在这里插入图片描述
查询发现安卓系统里面没有内置对应的APN。
每家厂商定制的都不一样 路径也各不相同。

find ./ -name apn*.xml

在这里插入图片描述

1.命令测试:

adb shell
su
content insert --uri content://telephony/carriers --bind name:s:"123" --bind numeric:s:"46006" --bind type:s:"default,sulp" --bind mcc:i:460 --bind mnc:s:"06" --bind apn:s:"123"  --bind user:s:"" --bind password:s:""

中国移动:46000 46002 46004 46007
中国联通:46001 46006 46009
中国电信:46003 46011
命令测试完之后需要恢复出厂设置清除。

2.内置apn

找到对应的apns-conf.xml,从机器pull出来修改验证

 adb pull  /product/etc/apns-conf.xml
//添加APN
<apn carrier="China Unicom 4G" mcc="460" mnc="06" apn="4gnet" port="80" type="default,supl" />

在这里插入图片描述
推到机器验证:

adb root;adb remount
adb push .\apns-conf.xml  /product/etc/apns-conf.xml
adb shell "rm data/user_de/0/com.android.providers.telephony/databases/telephony.db"
adb shell sync
adb reboot

Android支持的apn类型(原文链接)

Android中支持的apn类型(”default, mms, supl, dun, hipri, fota, ims…….”),其功能如下所示:

类型描述
default默认数据连接,即浏览器、Email等普通连接(internet、wap、web)
mms接收和发送彩信使用的数据连接
supl支持APGS的数据连接(gprs上网)
dun拨号连接(wifi等上网类型,tethering)
hipri扩展

此表中的数据优先级是由低到高的,即default数据连接的优先级最低,而hipri数据连接的优先级最高。比如在手机上网聊天时,将建立default数据连接;当手机收到一条彩信,因为彩信的数据连接是mms,这时会断开default数据连接而创建mms数据连接,从而能快速接收到此彩信,因为mms比default的数据连接优先级高。因此,在发送和接收彩信的同时不能上网。
APN分类

1、default

默认网络连接,当激活时所有数据传输都使用该连接,不能与其他网络连接同时使用

适用场合:绝大部分正常上网时可以使用

2、mms

彩信专用连接,此连接与default类似,用于与载体的多媒体信息服务器对话的应用程序,此连接能与default连接同时使用

适用场合:使用彩信服务时,必须有mms类型的接入点,不必选中,应用程序会自动使用此接入点

3、supl

是SecureUser Plane Location“安全用户面定位”的简写,此连接与default类似,用于帮助定位设备与载体的安全用户面定位服务器对话的应用程序,此连接能与default连接同时使用

4、dun

Dial UpNetworking拨号网络的简称,此连接与default连接类似,用于执行一个拨号网络网桥,使载体能知道拨号网络流量的应用程序,此连接能与default连接同时使用

适用场合:当我们使用自己的手机给别人做热点时使用,不管是USB 热点,wifi热点或则bluetooth热点。将他与default区别开来的主要目的一般是方面计费,国外很多运营商手机自己上网和做热点计费不同的。目前在国内三大运营商都没有区分,所以也就没有dun这个apn

5、hipri

高优先级网络,与default类似,但路由设置不同。使用较少。

6、ims

当ims发起激活请求时会使用这个apn连建立ims的专用承载.

7、FOTA

手机FOTA升级的时候使用

8.IA

IA的apn专用于LTE attach使用,在手机检测到sim卡后,便会加载这个attach apn. 不过很多运营商并没有严格规定attach apn,所以常常复用default类型的apn。 在attachapn 加载的时候它有一个优先级顺序,如下:

IaApn > PreferredApn > DefaultApn>FirstApn

IaApn : 类型为ia的apn,优先级最高。

PreferredApn :选中的apn。比如在手机setting里面设置的那个apn

DefaultApn :从apnlist里面查询到的第一个类型为“default”的apn

FirstApn :apnlist中的第一个apn。
APN加载和过滤
在每次开机的时候系统回自动检查telephony.db是否存在,如果不存在则会创建数据库telephony.db,并利用apns-conf.xml中的内容生成表carriers,以后所有对apn的操作都会是直接针对表carriers,包括查询,创建,修改,删除等。

当插入一张卡后系统会根据卡的相关信息来匹配相应的apn,在apn list中主要涉及匹配的项有:mcc,mnc,mvno_type, mvno_match_data。mvno_type值决定mvno_match_data的值,android原生代码里mvno_type会有4个值,他们分别是“spn”,“imsi”,“gid”, “iccid”。所以,在apn 读取的时候,会先根据sim卡的mcc,mnc读取出相应的apn list,接着会判断apn list 中的每一个apn的mvno_type 的值,如果不为空,则会根据mvno_type 和mvno_match_data再一次对apn list进行过滤,一般情况下,mvno_type,mvno_match_data为空。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值