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为空。

<think>好的,用户的问题是如何在项目中使用Bootstrap进行eSIM相关的开发或配置。首先,我需要明确用户的具体需求。eSIM通常涉及嵌入式SIM的配置和管理,可能涉及到前端界面开发,比如配置页面或管理面板。而Bootstrap是一个前端框架,主要用于快速构建响应式网页设计。 接下来,我需要考虑用户可能的应用场景。用户可能在开发一个eSIM管理平台,需要用户友好的界面来配置eSIM参数、查看状态或管理设备。这时候使用Bootstrap可以快速搭建美观且适配不同设备的界面。 然后,我应该检查用户提供的引用内容。引用[1]提到的是Kubernetes的配置文件参数,可能和Bootstrap的配置有关,但不确定是否直接相关。引用[2]是关于Bootstrap资源加载错误,用户可能遇到了CSS或JS文件的问题,解决方案是移除integrity属性。引用[3]是命令行过长的问题,可能与项目配置有关,但和eSIM开发关系不大。 用户的问题需要将Bootstrap与eSIM开发结合起来,可能需要指导如何在项目中集成Bootstrap,处理可能的错误,并展示一个简单的示例。同时,需要确保回答结构清晰,步骤明确。 首先,我应该解释Bootstrap在eSIM项目中的作用,比如构建管理界面。然后,分步骤说明如何引入Bootstrap,包括下载文件、HTML结构、响应式布局等。接着,结合eSIM的具体需求,比如表单配置,展示代码示例。此外,需要提及用户提到的引用中的错误,比如如何处理资源加载问题,可能需要移除integrity属性以避免错误。 最后,生成相关问题,帮助用户进一步探索,比如性能优化、兼容性处理等。确保回答中引用了用户提供的引用内容,例如在解决资源加载问题时引用[2]。 需要验证步骤是否正确,例如确保CDN链接有效,或者建议使用本地文件。同时,提醒用户根据实际需求调整布局和组件,确保功能符合eSIM配置的需求。</think>### 如何在项目中使用Bootstrap进行eSIM开发或配置? eSIM(嵌入式SIM)的开发通常涉及设备配置、网络通信和用户界面设计。Bootstrap作为前端框架,可用于快速构建与eSIM相关的管理界面或配置工具。以下是具体步骤和注意事项: --- #### **1. 集成Bootstrap到项目中** - **本地引入**(推荐避免CDN问题): 1. 下载[Bootstrap v5.3](https://getbootstrap.com/docs/5.3/getting-started/download/)的CSS和JS文件。 2. 在HTML中引用(注意移除`integrity`属性以避免资源校验错误[^2]): ```html <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/bootstrap.bundle.min.js"></script> ``` - **使用CDN**(需处理跨域问题): ```html <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> ``` --- #### **2. 构建eSIM配置界面** 假设需要开发一个eSIM参数配置页面,可使用Bootstrap组件: ```html <div class="container mt-5"> <h3 class="mb-4">eSIM Profile Configuration</h3> <form id="esimForm"> <!-- 运营商选择 --> <div class="mb-3"> <label class="form-label">Operator</label> <select class="form-select" required> <option value="carrier1">Carrier A</option> <option value="carrier2">Carrier B</option> </select> </div> <!-- APN配置 --> <div class="mb-3"> <label class="form-label">APN Settings</label> <input type="text" class="form-control" placeholder="Enter APN"> </div> <!-- 提交按钮 --> <button type="submit" class="btn btn-primary">Save Configuration</button> </form> </div> ``` --- #### **3. 处理与后端通信** eSIM配置通常需要与设备或服务器交互。通过AJAX发送数据示例: ```javascript document.getElementById('esimForm').addEventListener('submit', function(e) { e.preventDefault(); const formData = { operator: document.querySelector('.form-select').value, apn: document.querySelector('.form-control').value }; // 调用后端API(示例) fetch('/configure-esim', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }).then(response => { if (response.ok) alert('Configuration saved!'); }); }); ``` --- #### **4. 常见问题解决** - **资源加载失败**:确保文件路径正确,删除`integrity`属性(引用[2])。 - **命令行过长错误**:若使用Spring Boot等后端框架,需缩短命令行参数(引用[3])。 - **响应式适配**:使用Bootstrap的网格系统(如`row`和`col-*`类)适配移动设备。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值