日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android之BroadcastReceiver 监听系统广播

發布時間:2023/11/29 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android之BroadcastReceiver 监听系统广播 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

綁定廣播有兩種方式

一.配置文件綁定,在程序未啟動也能監聽

二.代碼方式綁定,在程序啟動后才能監聽

?

1.綁定和取消綁定廣播

public class MainActivity extends Activity {private Button registerButton=null;private Button unRegisterButton=null;private SMSReceiver smsReceiver=null;private static final String SMS_ACTION="android.provider.Telephony.SMS_RECEIVED";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);registerButton=(Button)findViewById(R.id.registerButton);unRegisterButton=(Button)findViewById(R.id.unRegisterButton);registerButton.setOnClickListener(new RegisterReceiverListener());unRegisterButton.setOnClickListener(new UnRegisterReceiverListener());/*if (savedInstanceState == null) {getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();}*/}class RegisterReceiverListener implements OnClickListener{@Overridepublic void onClick(View v) {System.out.println("registerReceiver");//生成一個BroadcastReceiver對象smsReceiver=new SMSReceiver();//生成一個IntentFilter對象IntentFilter filter=new IntentFilter();//為IntentFilter添加一個Action filter.addAction(SMS_ACTION);MainActivity.this.registerReceiver(smsReceiver, filter);}}class UnRegisterReceiverListener implements OnClickListener{@Overridepublic void onClick(View v) {System.out.println("unregisterReceiver");MainActivity.this.unregisterReceiver(smsReceiver);}}

?

2.廣播類

package com.example.mars_1800_broadcastreceiver02;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.gsm.SmsMessage;public class SMSReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {System.out.println("receive message");//接收Intent對象當中的數據Bundle bundle=intent.getExtras();//在Bundle對象中有一個屬性為pdus,該屬性為Object數組Object[] myOBJpdus=(Object[])bundle.get("pdus");//創建一個SmsMessage類型的數組SmsMessage[] messages=new SmsMessage[myOBJpdus.length];System.out.println(messages.length);for (int i = 0; i < myOBJpdus.length; i++) {//使用Object數組中的對象創建SmsMessage對象messages[i]=SmsMessage.createFromPdu((byte[])myOBJpdus[i]);//獲取到信息對象的內容 System.out.println(messages[i].getDisplayOriginatingAddress());System.out.println(messages[i].getDisplayMessageBody());}} }

?

3.加入相應權限

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.mars_1800_broadcastreceiver02"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="19" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.example.mars_1800_broadcastreceiver02.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!-- <receiver android:name="SMSReceiver" ><intent-filter><action android:name="android.provider.Telephony.SMS_RECEIVED" /></intent-filter></receiver> --></application><!-- 接收短信廣播則一定有加入相應的權限 --><uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> </manifest>

?

總結

以上是生活随笔為你收集整理的Android之BroadcastReceiver 监听系统广播的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。