中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中BroadcastReceiver的示例分析

發布時間:2021-07-26 15:08:06 來源:億速云 閱讀:123 作者:小新 欄目:移動開發

這篇文章主要介紹了Android中BroadcastReceiver的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、知識介紹

  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之后一定要進行動態權限申請才可以

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Android中BroadcastReceiver的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴义市| 加查县| 涪陵区| 台东市| 泗阳县| 临海市| 峨边| 梧州市| 曲阜市| 阜阳市| 伊通| 霍林郭勒市| 南华县| 乌兰察布市| 五指山市| 汪清县| 新安县| 临桂县| 冕宁县| 抚宁县| 峨山| 清苑县| 石家庄市| 张家港市| 盐城市| 金坛市| 大同市| 临泽县| 合水县| 湖南省| 肇州县| 乐都县| 安岳县| 瑞昌市| 柏乡县| 舟曲县| 若尔盖县| 讷河市| 信宜市| 金坛市| 新宁县|