热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

AndroidBroadcastReceiver接收收到短信的广播

这篇文章主要为大家详细介绍了AndroidBroadcastReceiver接收收到短信的广播,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、知识介绍

  1、broadcastReceiver是广播接受者,四大组件之一。

  2、Android中内置了很多系统级别的广播,可以在应用程序中得到各种系统的状态信息。

  3、使用场景:

  ①当手机没有电时,会告知用户“电量低”的广播信息。可以做到正在使用的app就会接收到这个广播消息,如果是游戏可能是提醒保存数据,如果是正在使用的工作软件,可能提醒接上电源。

  【提示】对于某某程序来说,可以选择接收这一消息也可以选择不接收这个消息。

  ②手机的storage不够了,提示你清理空间,否则应用程序将变慢或者无法使用。

  ③手机一开机,某某程序就自动运行,QQ、微信都是开机自启。

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

  5、广播接受者需要进行注册。动态注册,静态注册(在AndroidManiFest文件中)  

二、项目实践

【步骤】
  ①定义广播接受者

  ②进行注册,添加过滤器 intent-filter,接收特定的广播

  ③重写onReceiver方法,如果执行,代表已经接收到广播

  ④定义收到信息广播接收者,属于系统广播,则需要申请权限(静态,动态)

【项目结构】

【提示】创建Receiver可以通过以下方式
    此方法会自动在AndroidManifest中进行注册receiver,但是需要接收固定的广播,仍需添加intent-filter

 【AndroidManifest】  


 
  
    
  

【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】   


②动态权限【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之后一定要进行动态权限申请才可以

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 本文详细介绍了 Python 中 thread 和 threading 模块的使用方法,并提供了丰富的示例和解释。文章首发于 HURUWO 的博客小站,本平台进行同步备份发布。如遇图片加载失败或有任何疑问,欢迎前往原博客留言。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • [c++基础]STL
    cppfig15_10.cppincludeincludeusingnamespacestd;templatevoidprintVector(constvector&integer ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 对于众多创业公司而言,选择小程序或小视频的发展方向至关重要。本文将深入分析小程序和小视频的特点、优势及局限,帮助创业者做出更明智的选择。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • HTML中span元素为何会脱离li元素对齐?
    在HTML布局中,有时会遇到span元素未能与li元素保持对齐的问题。本文将探讨这一现象的原因,并提供解决方案。 ... [详细]
  • C盘无法格式化的原因及解决方法
    本文探讨了C盘无法格式化的原因,并提供了详细的解决方案,帮助用户顺利进行系统维护。 ... [详细]
  • 如何有效提升微信公众号的关注度?运营策略解析
    许多运营者在创建微信公众号后,发现尽管投入了大量时间和精力,关注人数却增长缓慢。本文将介绍一些实用的运营技巧,帮助你快速提升公众号的关注度。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 打印机缺少监听控件的影响及人去世后无人祭奠的现实意义探析
    华夏文化历史悠久,尤其在祭祀方面,传统上有着极为复杂的仪式和规定。然而,随着时代的变迁,这些繁琐的仪式逐渐被简化,反映了社会进步和人们生活方式的变化。与此同时,打印机缺乏监听控件的问题也日益凸显,这不仅影响了打印效率和安全性,还可能带来数据泄露等风险。本文探讨了这两个看似不相关的现象背后的深层意义,特别是人去世后无人祭奠的现实问题及其对现代社会的启示。 ... [详细]
  • 哪款手机办事提醒软件使用效果更佳?
    在日常生活中,人们通常会使用哪些软件来记录待办事项呢?对于这一问题,大多数人的回答是:当然是专业的待办事项提醒软件。选择一款高效且易用的提醒软件,能够显著提升日常生活和工作的管理效率。这类软件不仅具备基本的日程提醒功能,还可能包括任务分类、优先级设置、重复提醒等多种实用特性,帮助用户更好地安排和管理各项事务。 ... [详细]
author-avatar
xaony23625
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有