您好,登錄后才能下訂單哦!
這篇文章主要介紹了Android中BroadcastReceiver的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
一、知識介紹
1、broadcastReceiver是廣播接受者,四大組件之一。
2、Android中內置了很多系統級別的廣播,可以在應用程序中得到各種系統的狀態信息。
3、使用場景:
①當手機沒有電時,會告知用戶“電量低”的廣播信息。可以做到正在使用的app就會接收到這個廣播消息,如果是游戲可能是提醒保存數據,如果是正在使用的工作軟件,可能提醒接上電源。
【提示】對于某某程序來說,可以選擇接收這一消息也可以選擇不接收這個消息。
②手機的storage不夠了,提示你清理空間,否則應用程序將變慢或者無法使用。
③手機一開機,某某程序就自動運行,QQ、微信都是開機自啟。
4、一個程序發出廣播信息,一個程序接收廣播信息,所以至少需要2個程序才能完成一發一收。發的一方,叫廣播發送方;收的一方,叫廣播接收者。
5、廣播接受者需要進行注冊。動態注冊,靜態注冊(在AndroidManiFest文件中)
二、項目實踐
【步驟】
①定義廣播接受者
②進行注冊,添加過濾器 intent-filter,接收特定的廣播
③重寫onReceiver方法,如果執行,代表已經接收到廣播
④定義收到信息廣播接收者,屬于系統廣播,則需要申請權限(靜態,動態)
【項目結構】
【提示】創建Receiver可以通過以下方式
此方法會自動在AndroidManifest中進行注冊receiver,但是需要接收固定的廣播,仍需添加intent-filter
【AndroidManifest】
<receiver android:name=".receiver.MsgReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"></action> <!--接收收到信息的廣播--> </intent-filter> </receiver>
【MsgReceiver】
重寫onReceiver方法,添加Toast
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class MsgReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO: This method is called when the BroadcastReceiver is receiving // an Intent broadcast. Toast.makeText(context, "收到信息", Toast.LENGTH_SHORT).show(); //添加Toast便于觀察 } }
【添加權限】
①靜態權限:【AndroidManifest】
<uses-permission android:name="android.permission.READ_SMS"></uses-permission> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
②動態權限【MainActivity】
import android.Manifest; import android.content.pm.PackageManager; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_SMS)!= PackageManager.PERMISSION_GRANTED|| ActivityCompat.checkSelfPermission(MainActivity.this,Manifest.permission.RECEIVE_SMS) !=PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_SMS,Manifest.permission.RECEIVE_SMS}, 1); }//動態申請權限 } }
【測試】
①操作
②效果
【小結】
①這里是接收系統廣播,也可以自己定義廣播。以及可以添加很多功能,接收到廣播進行特定的操作。
②廣播必須添加過濾器,對特定的廣播進行接收
③如果是接收系統廣播要進行權限的申請,5.0之后一定要進行動態權限申請才可以
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Android中BroadcastReceiver的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。