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

首頁(yè) > 系統(tǒng) > Android > 正文

Android BroadcastReceiver接收收到短信的廣播

2019-12-12 00:52:11
字體:
供稿:網(wǎng)友

一、知識(shí)介紹

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

  2、Android中內(nèi)置了很多系統(tǒng)級(jí)別的廣播,可以在應(yīng)用程序中得到各種系統(tǒng)的狀態(tài)信息。

  3、使用場(chǎng)景:

  ①當(dāng)手機(jī)沒有電時(shí),會(huì)告知用戶“電量低”的廣播信息??梢宰龅秸谑褂玫腶pp就會(huì)接收到這個(gè)廣播消息,如果是游戲可能是提醒保存數(shù)據(jù),如果是正在使用的工作軟件,可能提醒接上電源。

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

  ②手機(jī)的storage不夠了,提示你清理空間,否則應(yīng)用程序?qū)⒆兟蛘邿o法使用。

  ③手機(jī)一開機(jī),某某程序就自動(dòng)運(yùn)行,QQ、微信都是開機(jī)自啟。

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

  5、廣播接受者需要進(jìn)行注冊(cè)。動(dòng)態(tài)注冊(cè),靜態(tài)注冊(cè)(在AndroidManiFest文件中)  

二、項(xiàng)目實(shí)踐

【步驟】
 ?、俣x廣播接受者

  ②進(jìn)行注冊(cè),添加過濾器 intent-filter,接收特定的廣播

  ③重寫onReceiver方法,如果執(zhí)行,代表已經(jīng)接收到廣播

  ④定義收到信息廣播接收者,屬于系統(tǒng)廣播,則需要申請(qǐng)權(quán)限(靜態(tài),動(dòng)態(tài))

【項(xiàng)目結(jié)構(gòu)】

【提示】創(chuàng)建Receiver可以通過以下方式
    此方法會(huì)自動(dòng)在AndroidManifest中進(jìn)行注冊(cè)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便于觀察  }} 

【添加權(quán)限】

①靜態(tài)權(quán)限:【AndroidManifest】   

<uses-permission android:name="android.permission.READ_SMS"></uses-permission><uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>

②動(dòng)態(tài)權(quán)限【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);    }//動(dòng)態(tài)申請(qǐng)權(quán)限  }}

【測(cè)試】

①操作

②效果

    

【小結(jié)】

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

 ?、趶V播必須添加過濾器,對(duì)特定的廣播進(jìn)行接收

 ?、廴绻墙邮障到y(tǒng)廣播要進(jìn)行權(quán)限的申請(qǐng),5.0之后一定要進(jìn)行動(dòng)態(tài)權(quán)限申請(qǐng)才可以

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平凉市| 徐州市| 华蓥市| 东宁县| 灯塔市| 孟连| 灵宝市| 天峨县| 华池县| 丘北县| 民权县| 密云县| 清水河县| 德清县| 吉首市| 威信县| 息烽县| 张家界市| 通州市| 莎车县| 郧西县| 通州区| 安陆市| 平阳县| 平泉县| 尉氏县| 施秉县| 塘沽区| 齐齐哈尔市| 涪陵区| 渝中区| 嘉荫县| 浪卡子县| 铁岭市| 平昌县| 雅安市| 铜鼓县| 昭通市| 青神县| 古蔺县| 林西县|