編輯:關於Android編程
讀取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(); } }
下拉刷新上拉加載更多的擴展ListView在很多APP我們都能看到,在一個列表上面,將手指往屏幕下面滑動,列表上方就會出現一個隱藏的View,一般寫有“下拉刷
首先,為什麼要用aidl ------------------------------------------------------------------------
Android進階中級教程——1.1 Git的本地使用詳解標簽(空格分隔): Android進階1.引言在之前的Android基礎入門系列我們就講
首先推薦一下鴻洋大大的打造個性的圖片預覽與多點觸控視頻教程,這套教程教我們一步一步實現了多點觸控實現對圖片的平移和縮放的功能,這篇文章我將在鴻洋大大的基礎之上做了一些擴展