Android執行個體-手機安全衛士(二十五)-檢查手機SIM卡是否變更

來源:互聯網
上載者:User

標籤:

一、目標

  1、利用廣播接收者(手機重啟時會發出相應廣播)擷取開機時的SIM序號,與已經儲存著的比較。根據比較結果完成相應操作。

  2、(可選)強制在防盜設定嚮導第二步中要求綁定SIM卡後才可進行下一步設定。

  3、實現從另一個Activity中擷取資料,即點擊”選擇連絡人“人後跳至建立的類(選擇連絡人)中,並從中擷取連絡人資料。

 

二、代碼實現。

  1、在程式包下建立包(取名com.example.mobilesafe.receiver),用於接收廣播。在建立包下建立類(取名BootCompleteReceiver.java)並繼承廣播接收者(BroadcastReceiver)。

  2、在設定檔(AndroidManifest.xml)中註冊建立的廣播接收類(取名BootCompleteReceiver.java)。<activity>標籤下建立接收者<receiver>標籤,名稱(android:name)為建立廣播接受類的全路徑名稱,<receiver>標籤下建立意圖過濾標籤<intent-filter>,意圖過濾標籤<intent-filter>中建立動作標籤<action>,動作標籤<action>中需要關注的廣播名稱(android:name)為android.intent.action.BOOT_COMPLETED。

廣播註冊代碼:

1 <receiver android:name="com.example.mobilesafe.receiver.BootCompleteReceiver" >2             <intent-filter>3                 <action android:name="android.intent.action.BOOT_COMPLETED" />4             </intent-filter>5         </receiver>
View Code

 

   3、在建立的廣播接收類(BootCompleteReceiver.java)中,通過SharedPreferences對象擷取已經儲存的檔案(config)中SIM的序號(配置參數為SimSerialNumber),通過TelephonyManager對象擷取當前SIM序號,然後進行比較。根據比較結果進行相應操作。

 1 package com.example.mobilesafe.receiver; 2  3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.content.SharedPreferences; 7 import android.telephony.TelephonyManager; 8 import android.widget.Toast; 9 10 public class BootCompleteReceiver extends BroadcastReceiver {11     12     private SharedPreferences sp;13     private TelephonyManager tm;14 15     @Override16     public void onReceive(Context context, Intent intent) {17         sp = context.getSharedPreferences("config", context.MODE_PRIVATE);18         tm = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);19         //擷取已儲存了的SIM卡序號20         String  savedSIM = sp.getString("SimSerialNumber", null);21         //擷取當前SIM卡序號22         String newSIM = tm.getSimSerialNumber();        23         if(newSIM.equals(savedSIM)){24             //序號相等25             26         }else{27             //序號不相等28         }29     }30 }
View Code

 

   4、(可選)強制要求綁定SIM卡。在嚮導第二步的Activity主代碼的滑向下一步方法(slideNext() )中,同時sp擷取getString擷取設定檔(config)中SIM綁定情況的參數(SimSerialNumber)的值,如果返回空,則不可進入下一步。

代碼如下:

 1 public void slideNext() { 2          3         String  sim  = sp.getString("SimSerialNumber", null); 4         if(TextUtils.isEmpty(sim)){ 5             Toast.makeText(this, "SIM卡未綁定", 0).show(); 6             return; 7         } 8         Intent intent = new Intent (SetupWizard_ui_2.this,SetupWizard_ui_3.class); 9         startActivity(intent);10         finish();11         overridePendingTransition(R.anim.tran_in, R.anim.tran_out);        12     }
View Code

 

  5、點擊”選擇連絡人“按鈕進入選擇連絡人Activity,並最後從該Activity中擷取資料。

    ①.為選擇連絡人設定點擊事件;②.在點擊事件方法中通過Intent串連兩個Activity(嚮導設定第三步、選擇連絡人);③.通過startActivityForResult(Intent intent, int requestCode)方法啟動,參數中intent為串連兩個Activity的意圖,  int requestCode為返回的結果碼,這裡先設定為0.

點擊事件方法

public void selectcontact(View view){Intent intent = new Intent(SetupWizard_ui_3.this,SelectContactActivity.class);startActivityForResult(intent, 0);}

 

Android執行個體-手機安全衛士(二十五)-檢查手機SIM卡是否變更

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.