国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android BroadcastReceiver接收收到短信的廣播

2019-10-22 18:10:51
字體:
來源:轉載
供稿:網友

一、知識介紹

  1、broadcastReceiver是廣播接受者,四大組件之一。

  2、Android中內置了很多系統級別的廣播,可以在應用程序中得到各種系統的狀態信息。

  3、使用場景:

  ①當手機沒有電時,會告知用戶“電量低”的廣播信息。可以做到正在使用的app就會接收到這個廣播消息,如果是游戲可能是提醒保存數據,如果是正在使用的工作軟件,可能提醒接上電源。

  【提示】對于某某程序來說,可以選擇接收這一消息也可以選擇不接收這個消息。

  ②手機的storage不夠了,提示你清理空間,否則應用程序將變慢或者無法使用。

  ③手機一開機,某某程序就自動運行,QQ、微信都是開機自啟。

  4、一個程序發出廣播信息,一個程序接收廣播信息,所以至少需要2個程序才能完成一發一收。發的一方,叫廣播發送方;收的一方,叫廣播接收者。

  5、廣播接受者需要進行注冊。動態注冊,靜態注冊(在AndroidManiFest文件中)  

二、項目實踐

【步驟】
  ①定義廣播接受者

  ②進行注冊,添加過濾器 intent-filter,接收特定的廣播

  ③重寫onReceiver方法,如果執行,代表已經接收到廣播

  ④定義收到信息廣播接收者,屬于系統廣播,則需要申請權限(靜態,動態)

【項目結構】

Android,BroadcastReceiver,廣播

【提示】創建Receiver可以通過以下方式
    此方法會自動在AndroidManifest中進行注冊receiver,但是需要接收固定的廣播,仍需添加intent-filter

Android,BroadcastReceiver,廣播

Android,BroadcastReceiver,廣播

 【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);    }//動態申請權限  }}

【測試】

①操作

Android,BroadcastReceiver,廣播

②效果

    Android,BroadcastReceiver,廣播

【小結】

  ①這里是接收系統廣播,也可以自己定義廣播。以及可以添加很多功能,接收到廣播進行特定的操作。

  ②廣播必須添加過濾器,對特定的廣播進行接收

  ③如果是接收系統廣播要進行權限的申請,5.0之后一定要進行動態權限申請才可以

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 敖汉旗| 高州市| 六安市| 建阳市| 繁峙县| 大埔县| 会理县| 深州市| 广德县| 丽江市| 蓝山县| 屏山县| 星座| 易门县| 视频| 嘉禾县| 鸡西市| 钦州市| 望城县| 永安市| 长垣县| 怀远县| 清镇市| 肇源县| 华容县| 鲁甸县| 阿拉尔市| 襄汾县| 大洼县| 绥中县| 白山市| 抚宁县| 古浪县| 彰化市| 吴桥县| 临湘市| 冕宁县| 基隆市| 海城市| 河源市| 宁远县|