【发布时间】:2012-09-24 19:53:03
【问题描述】:
我有一个大问题我想检测一下在BOOT_COMPLETED for BroadcastReceiver之后SIM卡有没有换过 我在我的清单上写这个
<receiver android:name="startMobBroacastReciver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
权限是
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
这是我的代码
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction()))
{
tm=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
tel_num= (GsmCellLocation) tm.getCellLocation();
prefs=context.getSharedPreferences("myprefs", 0);
Log.i("SIM", " "+tel_num.getCid()+" "+tel_num.getLac()+" "+tm.getSimSerialNumber());
sim_serial_number=prefs.getString("SIM_serial", "null");
Toast.makeText(context, "add "+tm.getSimSerialNumber(), Toast.LENGTH_LONG).show();
顺便说一句 tel_num.getCid() 和 tel_num.getLac() 返回值但 tm.getSimSerialNumber() 返回 null ,这就是让我发疯的原因:( 请帮忙
【问题讨论】:
-
当你阅读the documentation for
getSimSerialNumber()时,你学到了什么? -
你的意思是我的SIM序列号不可用。但是我测试在activity中写入getSimSerialNumber(),它工作正常
标签: android broadcastreceiver telephonymanager