android sim卡状态改变广播,android监控SIM卡状态的广播示例代码
时间: 2023-08-18 20:05:16 浏览: 61
好的,以下是Android中监听SIM卡状态改变的示例代码:
```java
public class SimCardStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) {
String simState = intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE);
switch(simState) {
case IccCardConstants.INTENT_VALUE_ICC_ABSENT:
// SIM卡不存在
break;
case IccCardConstants.INTENT_VALUE_ICC_READY:
// SIM卡已准备好
break;
case IccCardConstants.INTENT_VALUE_ICC_LOCKED:
// SIM卡已锁定
break;
case IccCardConstants.INTENT_VALUE_ICC_IMSI:
// SIM卡已插入并且需要解锁
break;
case IccCardConstants.INTENT_VALUE_ICC_LOADED:
// SIM卡已加载
break;
}
}
}
}
```
在AndroidManifest.xml文件中添加以下代码,注册广播接收器:
```xml
<receiver android:name=".SimCardStateReceiver">
<intent-filter>
<action android:name="android.intent.action.SIM_STATE_CHANGED"/>
</intent-filter>
</receiver>
```
注意:需要添加权限 `<uses-permission android:name="android.permission.READ_PHONE_STATE"/>`。同时,上述代码中的 `IccCardConstants` 类在 Android 5.1 及以上版本中才有,如果你的应用需要兼容 Android 5.1 以下版本,请使用 `TelephonyManager.SIM_STATE_XXX` 常量。