編輯:關於Android編程
當一個事件產生的時候,就會發出一個廣播,所有注冊了這個廣播的接受者,都可以接收到這個廣播。
1、自定義一個類,繼承BroadcastReceiver類。覆寫onReceive方法
public class SmsReceiver extends BroadcastReceiver {
publicvoid onReceive(Context arg0, Intent data) {
System.out.println("短信到來了");
//pdus為短信的規范,獲取短信的數組。
Object[] pdus = (Object[])data.getExtras().get("pdus");
for(Object pdu : pdus){
//獲取每一條短信對象
SmsMessage smsmessage = SmsMessage.createFromPdu((byte[]) pdu);
//短信的內容:
Stringcontent = smsmessage.getMessageBody();
System.out.println(content);
if(content.contains("fapiao")){
abortBroadcast();
}
//獲取短信的發件人
Stringsender = smsmessage.getOriginatingAddress();
System.out.println(sender);
if("5558".equals(sender)){
abortBroadcast();
//獲取短信的管理者
SmsManager manager =SmsManager.getDefault();
//向發送者發短信
manager.sendTextMessage(sender, null,"ni qu siba ", null, null);
}
}
// 終止掉這條廣播事件
}
2、在AndroidManifest.xml清單文件中使用receiver 元素配置廣播接收者:
package="cn.itcast.listener"
android:versionCode="1"
android:versionName="1.0" >
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
//配置廣播接收者
//廣播接收者的意圖過濾器。
//接收短信的動作
android:name="android.provider.Telephony.SMS_RECEIVED"/>
3、注意:想要廣播接收者接收不同的事件發出的官博,就在清單文件中廣播接收者的意圖過濾器中配置相應的事件。
//配置廣播接收者
//廣播接收者的意圖過濾器。
//接收短信的動作
android:name="android.provider.Telephony.SMS_RECEIVED"/>
4、系統的廣播事件分為兩種類型:
有序廣播:按順序下達的廣播,可以指定廣播接收者的優先級。
優先級從-1000到1000,1000代表優先級最大。當廣播到來時,按廣播接收者的優先級高低傳播。如果在高優先級的廣播接收者中調用abortBroadcast()終止掉這條廣播事件。則該廣播就不會向優先級低的廣播接收者傳播。
例:攔截垃圾短信。
無序廣播:廣播接收者,同時接收這個廣播。
1、定義類:
public class OutGoingCallReceiver extendsBroadcastReceiver {
@Override
publicvoid onReceive(Context context, Intent arg1) {
//IP號
String ipnumber = "17951";
String number = getResultData(); //獲取撥打的號碼
System.out.println("當前的電話號碼為"+number);
//把ip號碼添加到 要撥打的號碼的前面
String newnumber = ipnumber+number;
setResultData(newnumber);//設置撥打的號碼
}
}
2、在清單文件中注冊廣播接收者:指定接收者的接收的事件和優先級:
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
android:name="android.intent.action.NEW_OUTGOING_CALL"/>
-->
3、在清單文件中配置撥打電話的權限:
android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
在activity類中
//創建廣播接收者
OutGoingCallReceiver receiver = newOutGoingCallReceiver();
//創建意圖過濾器
IntentFilter filter = new IntentFilter();
filter.setPriority(1000);//設置優先級
//設置意圖
filter.addAction("android.intent.action.NEW_OUTGOING_CALL");
//注冊廣播接收者
registerReceiver(receiver, filter);
五、廣播接收者的生命周期:
如果廣播接收者響應超過10秒,會導致主線程無響應。報出anr異常。
iBeacon的工作原理是基於Bluetooth Low Energy(BLE)低功耗藍牙傳輸技術,iBeacon基站不斷向四周發送藍牙信號,當智
最近在做Android的項目,其中部分涉及到圖像處理的內容.這裡先講述如何調用Camera應用程序進行拍照,並截圖和保存顯示在ImageView控件中以及遇到的困難和解決
Android基礎入門教程——8.3.14 Paint幾個枚舉/常量值以及ShadowLayer陰影效果標簽(空格分隔): Android基礎入門
Android 系統從2008年到現在(2016年4月),八年時間裡版本從1.0一直升到6.0,由於Android系統更新速度快,導致市面上的Android設備運行的An