編輯:初級開發
這幾天自己寫了個手機防盜追蹤軟件,過程中遇到了些問題,在網友的幫助下得以解決
在這裡總結一下;
軟件中有這樣一塊功能:接收短信息,判斷是否是指令短息,如果是則執行相應的操作(事先定義好的),
測試的時候發現系統也能接收指令短息並顯示,並且短信鈴聲會響起(這不是預期的效果
預期的效果是系統可以正常接收非指令短息,遇到指令短息時不接受)
接收和發送短息的代碼我就不提了;
解決方法:
在Manifest.XML中配置廣播的優先級高於系統,
代碼如下
1 < receiver android:name="SmsReceiver" android:enabled="true">2 < intent-filter android:priority="100">3 < actionandroid:name="android.provider.Telephony.SMS_RECEIVED">4 < /intent-filter>5 < /receiver>
然後在指令短息執行完畢後終止廣播,這樣一來系統就接收不到指令短信啦
代碼如下:
1 package com.xiaoqin.Test.mess.abo; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.database.Cursor; 7 import android.Net.Uri; 8 import android.os.Bundle; 9 import android.telephony.SmsManager;10 import android.telephony.SmsMessage;11 import android.util.Log;12 import android.widget.Toast;13 14 public class SmsReceiver extends BroadcastReceiver {15 16 private static final String strRes = "android.provider.Telephony.SMS_RECEIVED";17 18 @Override19 public void onReceive(Context context, Intent intent) {20 Log.d("info", "Now is Listening.....");21 22 /*23 * 判斷是否是SMS_RECEIVED事件被觸發24 */25 26 if (intent.getAction().equals(strRes)) {27 Bundle bundle = intent.getExtras();28 if (bundle != null) {29 Object[] pdus = (Object[]) bundle.get("pdus");30 SmsMessage[] msg = new SmsMessage[pdus.length];31 for (int i = 0; i < pdus.length; i++) {32 msg[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);33 }34 for (SmsMessage currMsg : msg) {35 String codeStr = currMsg.getDisplayMessageBody().substring(36 0, 3);37 String code1 = currMsg.getDisplayMessageBody().substring(3,38 4);39 if (codeStr.equals("000")) {40 if (code1.equals("1")) {41 Toast toast = Toast.makeText(context,42 " 正在啟動GPS防盜追蹤... ", Toast.LENGTH_LONG);43 44 toast.show();45 abortBroadcast();46 } else if (code1.equals("2")) {47 Toast toast = Toast.makeText(context,48 " 正在獲取通訊錄信息... ", Toast.LENGTH_LONG);49 toast.show();50 abortBroadcast();51 } else if (code1.equals("3")) {52 Toast toast = Toast.makeText(context,53 " 正在監聽短信 ... ", Toast.LENGTH_LONG);54 toast.show();55 abortBroadcast();56 } else {57 Toast toast = Toast.makeText(context,58 " 不進行任何操作 ... ", Toast.LENGTH_LONG);59 toast.show();60 abortBroadcast();61 }62 }63 }64 }65 }66 67 }68 }
在經過長時間的等待之後我們在今天終於看見了看見了全新的Google Reader軟件,當然更為難能可貴的是這款軟件竟然是Google官方推出的,目前廣大的用戶已經可以在
在游戲開發中,往往要提供選關的頁面,選擇關卡可以簡單地使用listVIEw,如果想效果好一點,可以選擇 用gallery控件。Gallery控件的使用在api demo
很多初入Android的開發者可能會發現經常遇到Force Close或ANR這樣的問題,一般我們通過android系統的錯誤日志打印工具Logcat可以看到出錯的內容
1.下載需要用到的工具: (1)下載Java的IDE開發工具? Eclipse 到Eclipse官方網站下載Ecplise For Java EE的最新Windo