浅析Android手机卫士sim卡绑定

 更新时间:2016年04月13日 10:57:38   作者:陶士涵  
这篇文章主要介绍了浅析Android手机卫士sim卡绑定的相关资料,需要的朋友可以参考下

读取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();
}
}

相关文章

  • Android监听键盘状态获取键盘高度的实现方法

    Android监听键盘状态获取键盘高度的实现方法

    这篇文章主要给大家介绍了关于Android监听键盘状态获取键盘高度的实现方法,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Android中使用socket通信实现消息推送的方法详解

    Android中使用socket通信实现消息推送的方法详解

    这篇文章主要介绍了Android中使用socket通信实现消息推送的方法,文中举了一个消息发送端和一个消息接收端以及服务器端的例子来说明原理并且展示了客户端的实现,需要的朋友可以参考下
    2016-04-04
  • Android scheme 跳转的设计与实现详解

    Android scheme 跳转的设计与实现详解

    这篇文章主要介绍了Android scheme 跳转的设计与实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Java实现Andriod带看括弧的计算器代码

    Java实现Andriod带看括弧的计算器代码

    这篇文章主要介绍了Java实现Andriod带看括弧的计算器代码的相关资料,需要的朋友可以参考下
    2016-03-03
  • Android 动态高斯模糊效果教程

    Android 动态高斯模糊效果教程

    本文主要介绍Android 动态高斯模糊效果教程,这里整理了详细的资料及实例实现代码,有兴趣的小伙伴可以参考下
    2016-09-09
  • Android Compose衰减动画Animatable使用详解

    Android Compose衰减动画Animatable使用详解

    这篇文章主要为大家介绍了Android Compose衰减动画Animatable使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Android Studio和Gradle使用不同位置JDK的问题解决

    Android Studio和Gradle使用不同位置JDK的问题解决

    这篇文章主要介绍了Android Studio和Gradle使用不同位置JDK的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • android 开发教程之日历项目实践(一)

    android 开发教程之日历项目实践(一)

    决定开始学习 Android 平台下的软件开发,以日历作为实践项目,进行一周后,基本完成,有需要的朋友可以参考下
    2013-01-01
  • Android中3种图片压缩处理方法

    Android中3种图片压缩处理方法

    这篇文章主要介绍了Android中3种图片压缩处理方法,本文讲解了质量压缩方法、获得缩略图、图片缩放三种方法并分别给出示例代码,需要的朋友可以参考下
    2015-06-06
  • Android自定义GestureDetector实现手势ImageView

    Android自定义GestureDetector实现手势ImageView

    这篇文章主要为大家详细介绍了Android自定义GestureDetector实现手势ImageView的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03

最新评论