[android] 手机卫士绑定sim卡详解手机开发
收不到启动广播,查看知乎,好像是说高版本的系统都禁止了
还可以通过adb发送开机广播
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
还没测试,回去再测试
==========================
读取sim卡的序列号,保存起来,一旦sim发生变更了,认为是小偷的sim卡,发出警告
读取sim卡序列号
获取TelephonyManager对象,通过getSystemService(TELEPHONY_SERVICE)
调用TelephonyManager对象的getSimSerialNumber()方法,得到String类型的序列号
把序列号保存在SharedPreences里面
需要加权限 android.permission.READ_PHONE_STATE
检测sim卡是否变更
使用广播接收者,监听手机的开机广播
新建一个包 xxx.receiver,新建一个类BootCompleteReceiver.java
清单文件注册一下,添加 receiver 节点,设置名称android:name=”xxx”
添加意图过滤器 intent-filter 节点
添加动作 action/ 节点,设置监听动作名称android.intent.action.BOOT_COMPLETED
在BootCompleteReceiver类里面的onReceive()方法里,接收到广播,读取当前的sim卡序列号,比较之前保存的sim卡序列号,如果不一样就发送短信给安全号码
监听开机启动需要权限 android:perission.RECEIVE_BOOT_COMPLETED
BootCompleteReceiver.java
package com.qingguow.mobilesafe.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.telephony.TelephonyManager; import android.widget.Toast; public class BootCompleteReceiver extends BroadcastReceiver { private TelephonyManager tm; private SharedPreferences sp; @Override public void onReceive(Context cotext, Intent arg1) { sp=cotext.getSharedPreferences("config", Context.MODE_PRIVATE); //读取当前的sim卡序列号 tm=(TelephonyManager) cotext.getSystemService(Context.TELEPHONY_SERVICE); String relSim=tm.getSimSerialNumber(); //读取之前保存的 String saveSim=sp.getString("sim", ""); //判断后发短信 if(saveSim.equals(relSim)){ }else{ //发送报警短息给安全号码 System.out.println("sim卡变更了"); Toast.makeText(cotext, "sim卡变更了", 1).show(); }
SecGuide2Activity.java
package com.qingguow.mobilesafe; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import com.qingguow.mobilesafe.ui.SettingItemView; public class SecGuide2Activity extends BaseSecGuideActivity { private SettingItemView siv_sim; private SharedPreferences sp; private TelephonyManager telephonyManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_lost_find2); siv_sim = (SettingItemView) findViewById(R.id.siv_sim); sp = getSharedPreferences("config", MODE_PRIVATE); telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); // 根据保存的数据设置状态 String sim = sp.getString("sim", ""); if (TextUtils.isEmpty(sim)) { siv_sim.setChecked(false); } else { siv_sim.setChecked(true); // 绑定sim卡 siv_sim.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { String sim = telephonyManager.getSimSerialNumber(); Editor editor = sp.edit(); String simSp = sp.getString("sim", ""); if (TextUtils.isEmpty(simSp)) { siv_sim.setChecked(true); editor.putString("sim", sim); } else { siv_sim.setChecked(false); editor.putString("sim", ""); editor.commit(); }); public void nextStep(View v) { showNext(); public void preStep(View v) { showPre(); @Override public void showNext() { Intent intent = new Intent(this, SecGuide3Activity.class); startActivity(intent); finish(); @Override public void showPre() { Intent intent = new Intent(this, SecGuide1Activity.class); startActivity(intent); finish(); }
5428.html
app程序应用开发手机开发无线开发移动端开发相关文章
- android studio usb连接手机_android studio怎么用真机调试
- android 系统浏览器 源码-Android 最最最简单的浏览器代码
- android 校验用户名密码手机邮箱身份证邮编等
- Android如何保证一个线程最多只能有一个Looper详解手机开发
- Android弹性收缩自适应布局FlexboxLayout详解手机开发
- Android动态Java代码调整window大小详解手机开发
- Android 初步-Android文件目录介绍详解手机开发
- Android开发 10个常用工具类详解手机开发
- Android-SQLite数据库操作详解手机开发
- [android] WebView与Js交互详解手机开发
- [android] 采用服务录制电话&服务的生命周期详解手机开发
- [android] 短信的备份详解手机开发
- [android] android下junit测试框架配置详解手机开发
- Android开发优化之——使用软引用和弱引用详解手机开发
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅详解手机开发
- android自定义密码键盘详解手机开发
- Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果详解手机开发
- android Material Design详解手机开发
- 百度地图android studio导入开发插件详解手机开发
- Android OnLowMemory和OnTrimMemory详解手机开发
- Android存储系统的架构与设计详解手机开发
- Android 设置TextView透明度详解手机开发