Day04 2016-7-23 实现SIM换卡提醒功能
因为换卡必须重新开关机,开机会产生一个广播ACTION_BOOT_COMPLETED,创建广播接收器接收该广播,使用静态注册。
当应用程序启动时系统会创建Application对象(单例模式)。自定义类继承Application类,重写onCreate()方法实现换卡提醒功能。自己创建Application需要在配置文件中注册,给application标签添加name属性。
使用SharedPreferences获取是否开启防盗保护。如果开启,获取绑定SIM卡序列号和安全手机号,使用TelephoneManager获取现在的SIM卡序列号并与绑定的SIM卡序列号进行对比。如果不一致,将提醒短信发送到安全手机号。发送短信需要调用SmsManager.getDefault()方法获取SmsManager实例。调用该实例的sendTextMessage方法发送短信。发送短信需要声明<uses-permission android:name="android.permission.SEND_SMS">权限。
当应用程序启动时系统会创建Application对象(单例模式)。自定义类继承Application类,重写onCreate()方法实现换卡提醒功能。自己创建Application需要在配置文件中注册,给application标签添加name属性。
使用SharedPreferences获取是否开启防盗保护。如果开启,获取绑定SIM卡序列号和安全手机号,使用TelephoneManager获取现在的SIM卡序列号并与绑定的SIM卡序列号进行对比。如果不一致,将提醒短信发送到安全手机号。发送短信需要调用SmsManager.getDefault()方法获取SmsManager实例。如果短信的长度不大于70可以调用该实例的sendTextMessage方法发送短信,如果大于需要将短信使用SmsManager的divideMessage方法分割短信,然后通过sendMultipartTextMessage方法发送。
发送短信需要声明<uses-permission android:name="android.permission.SEND_SMS">权限。
SmsManager smsManager = SmsManager.getDefault(); String message = "XXX"; if (message.length() > 70) { ArrayList<String> msgs = smsManager.divideMessage(message); smsManager.sendMultipartTextMessage(safenumber, null, msgs, null, null); } else { smsManager.sendTextMessage(safenumber, null, message, null, null); }