学习手机安全卫士源码中,学习到的手机开机监听。
手机开机完毕后,会发送一条开机完毕广播。
使用BroadcastReciver接收广播,需要在manifest中注册。
<receiver android:name=".receiver.BootCompleteReceiver" >
<intent-filter android:priority="1000" >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
广播接收类
public class BootCompleteReceiver extends BroadcastReceiver {
private static final String TAG = "BootCompleteReceiver";
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
String safemuber = sp.getString("safemuber", "");
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String realsim = tm.getSimSerialNumber();
String savedSim = sp.getString("simserial", "");
if(!savedSim.equals(realsim)){
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(safemuber, null, "sim card changed", null, null);
}
}
}
在手机安全卫士源码中,用户的sim卡序列码与用户预留的手机号码会被记录保存在sharedpreference中。接收到手机开机的广播后,读取当前sim卡的序列号与预留号码,与sharedpreference中保存的序列号进行对比,如果不同,则向预留的手机号发送一条短信。