Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> [android] 手機衛士綁定sim卡,androidsim

[android] 手機衛士綁定sim卡,androidsim

編輯:關於android開發

[android] 手機衛士綁定sim卡,androidsim


更新:

收不到啟動廣播,查看知乎,好像是說高版本的系統都禁止了

還可以通過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();
    }
}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved