android 4.3 卡热插拔 自动识别卡类型

本文介绍了Android 4.3系统中关于SIM卡热插拔的处理方法,重点讲解了如何识别不同运营商的PLMN标识,如46000对应中国移动GSM/TD-SCDMA网络,46001对应中国联通GSM网络等。通过理解IMSI的组成(MCC、MNC和MSIN),实现对SIM卡变化的监听,并在AndroidManifest.xml中开启Phone模块。若要实现网络模式的自动设置,可参考MobileNetworkSettings.java的相关代码修改。

首先我们要先了解一下SIM卡的PLMN标识。下面的内容是我在网上搜索到的。

内容如下:

46000,46002,41004是移动网络的ID号(PLMN标识),它们所支持的接入技术分别为:
46000是中国移动GSM网络的标识号(PLMN标识),所支持的接入技术为 GSM/TD-SCDMA。
46001是中国联通GSM网络的标识号(PLMN标识),所支持的接入技术为 GSM。
46002 是中国移动134/159的SIM卡的PLMN标识,所支持的接入技术为 GSM/TD-SCDMA。
46007是中国移动TD-SCDMA网的PLMN标识,所支持的接入技术为 TD-SCDMA。
41004是中国移动香港的PLMN标识

说明:
IMSI由三部分组成:
移动国家号码MCC:  由3个数字组成,唯一地识别移动用户所属的国家.中国为460.
移动网号MNC:  识别移动用户所归属的移动网.
移动用户识别码MSIN:  唯一地识别国内数字蜂窝移动通信网中的移动用户.


想让android支持sim卡的热插拔,首先我们需要对sim卡的变化进行消息接收。

打开Phone模块。AndroidManifest.xml

<!-- Broadcast Receiver that will process BOOT Complete and launch OTA -->
        <receiver android:name="OtaStartupReceiver" android:exported="false"
                androidprv:primaryUserOnly="true">
            <intent-filter android:priority="100">
                 <action a
### Android SIM热插拔实现方式 在Android系统中,支持SIM热插拔功能主要依赖于硬件抽象层(HAL)以及上层框架的支持。当检测到SIM状态变化时,会触发一系列事件来通知应用程序和服务。 对于开发者而言,可以通过监听`TelephonyManager.ACTION_SIM_STATE_CHANGED`广播消息来获取SIM的状态变更通知[^1]。此广播会在SIM被插入或移除时发送,并携带新的SIM状态信息。 具体来说,在应用层面可以注册一个BroadcastReceiver用于接收上述广播: ```java public class SimStateChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(TelephonyManager.ACTION_SIM_STATE_CHANGED)) { // 获取当前SIM状态并处理相应逻辑 String simStateExtra = intent.getStringExtra(IccCard.INTENT_KEY_ICC_STATE); switch(simStateExtra){ case IccCardConstants.INTENT_VALUE_ICC_ABSENT: Log.d("SimStatus", "No SIM card present"); break; case IccCardConstants.INTENT_VALUE_ICC_READY: Log.d("SimStatus", "SIM card is ready and active"); break; default: Log.d("SimStatus", "Other state:" + simStateExtra); } } } } ``` 此外,还可以通过调用`getSimState()`方法查询当前SIM的具体情况。该API返回值表示SIM的不同工作模式,如未加载、锁定等待PIN码输入等。 需要注意的是,从Android 6.0(API level 23)开始引入了运行时权限机制,因此如果要访问某些敏感数据(比如读取IMSI号码),还需要请求相应的权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值