有时候Android手机在开机成功后的那几秒会在状态栏通知,Sdcard开始扫描,Sdcard扫描完成,等信息

当Sdcard的状态发生改变后,系统会自动的发出广播

Sdcard的状态:

       1.mount 挂载;

       2.unmount 卸载移除;

         3.start_scan 开始扫描;

         4.scan_finish 扫描完成;

Sdcard是存储东西的,Sdcard通常是用Media挂钩,Android系统把它理解为:媒体数据


在AndroidManifest.xml订阅广播

     <!--
订阅(Xml形式订阅接收者)
订阅Sdcard接收者,此接收者专门去接收Sdcard状态,发送改变的四种广播
-->
<receiver android:name=".br.SdcardBroadcastReceiver"> <intent-filter> <!-- 卸载移除Sdcard -->
<action android:name="android.intent.action.MEDIA_UNMOUNTED" /> <!-- 挂载Sdcard -->
<action android:name="android.intent.action.MEDIA_MOUNTED" /> <!-- Sdcard开始扫描 -->
<action android:name="android.intent.action.MEDIA_SCANNER_STARTED" /> <!-- Sdcard扫描完成✅ -->
<action android:name="android.intent.action.MEDIA_SCANNER_FINISHED" /> <!-- 系统是这样发送广播的,所以必须这样订阅 -->
<data android:scheme="false" /> </intent-filter> </receiver>

在SdcardBroadcastReceiver接收多个Sdcard状态改变的广播

package liudeli.croadcast1.br;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log; /**
* Sdcard接收者,可以接收四个广播
* 当Sdcard的状态发生改变后,系统会自动的发出以下四种广播
*        
* 1.mount 挂载;
*
*         2.unmount 卸载移除;
*
*        3.start_scan 开始扫描;
*
*        4.scan_finish 扫描完成;
*/
public class SdcardBroadcastReceiver extends BroadcastReceiver { private final String TAG = SdcardBroadcastReceiver.class.getSimpleName(); @Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_MEDIA_MOUNTED.equals(action)) {
Log.d(TAG, "Sdcard挂载了...");
} else if (Intent.ACTION_MEDIA_UNMOUNTED.equals(action)) {
Log.d(TAG, "Sdcard卸载了 移除了...");
} else if (Intent.ACTION_MEDIA_SCANNER_STARTED.equals(action)) {
Log.d(TAG, "Sdcard开始扫描...");
} else if (Intent.ACTION_MEDIA_SCANNER_FINISHED.equals(action)) {
Log.d(TAG, "Sdcard扫描完成✅...");
}
}
}

Android-sdcard广播的接收处理的更多相关文章

  1. 【Android】Android 4.0 无法接收开机广播的问题

    [Android]Android 4.0 无法接收开机广播的问题   前面的文章 Android 开机广播的使用 中 已经提到Android的开机启动,但是在Android 4.0 有时可以接收到开机 ...

  2. Android的有序广播和无序广播(解决安卓8.0版本之后有序广播的接收问题)

    前言 Google从Android8.0版本开始,对在清单文件中静态注册广播做了限制. *** 特殊广播(动态注册广播接收者) 说:有序广播和无序广播之前,咱们先来说下Android中一些特殊的广播如 ...

  3. Android静态注册广播无法接收的问题(8.0+版本)

    如果你静态注册的广播无法接收到消息,请先检查下:你的安卓版本是不是8.0+ * 前言** Google官方声明:Beginning with Android 8.0 (API level 26), t ...

  4. Android 静态广播和动态广播接收顺序

    Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播  -  被广播接收器接收后,可被终止,无法往下继续传达.         典型代表:短信广播 普通广播  -  发送至每一 ...

  5. android 49 广播接收者中启动其他组件

    main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andro ...

  6. 【Android】广播BrocastReceiver

    1.Android中广播主要分为两种:标准广播和有序广播. 标准广播:完全异步执行.广播发出后,所有的广播接收器几乎在同一刻收到广播事件,没有先后顺序之分. 优点:效率高 缺点:不能被截断 有序广播: ...

  7. android在广播接收器BroadcastReceiver里面再进行发送广播,造成当前广播接收器不断循环执行问题

    最近在公司处理项目时,用到锁屏状态弹出activity进行提示,类似QQ消息弹屏提示的功能.当中用到了,假如该弹出activity已经位于锁屏界面外时,将不进行再次弹窗,而是发送广播进行通知数据更新, ...

  8. Android之 广播

    (以下内容是阅读郭霖大神的<第一行代码>后自己总结的) 1.概述 广播是Android的四大组件之一. Android的广播机制十分灵活. 2.发送广播 如上图Android的广播主要分为 ...

  9. Android学习--广播机制

    广播机制简介 Android的广播可以分为两种类型的,标准广播和有序的广播: 标准广播:  是一种完全异步执行的广播,在广播发出去之后,所有的广播接收器几乎是同一时接收到这条广播. 有序广播:  是一 ...

  10. android Broadcast广播消息代码实现

    我用的是Fragment , 发送写在一个类中,接收写在另外一个类的内部类中.代码动态实现注册. 代码: myReceiver = new zcd.netanything.MyCar.myReceiv ...

随机推荐

  1. lodop打印控件需要开启的几个计算机服务

    首先要开启: 其次:

  2. java批量下载,将多文件打包成zip格式下载

    现在的需求的: 根据产品族.产品类型,下载该产品族.产品类型下面的pic包: pic包是zip压缩文件: t_product表: 这些包以blob形式存在另一张表中: t_imagefile表: 现在 ...

  3. 学习笔记之SQL 教程

    SQL 教程 | 菜鸟教程 http://www.runoob.com/sql/sql-tutorial.html SQL,指结构化查询语言,全称是 Structured Query Language ...

  4. 关于centos6升级python3.6无法使用pip的问题

    用find / -name "pip",也找不到类似/usr/bin/pip类似的命令,说明pip没安装好,那么运行下面的命令 yum install python-pip 然后可 ...

  5. oracle忘记sys及system密码

    一.忘记除SYS.SYSTEM用户之外的用户的登录密码. 用SYS (或SYSTEM)用户登录. CONN SYS/PASS_WORD AS SYSDBA; 使用如下语句修改用户的密码. ALTER ...

  6. selenium webdriver——JS对Input执行输入

    直接设置value属性, 此方法主要应对输入框自动补全以及readonly属性的element,sendkeys不稳定 比如: Demo:用JS输入 import org.openqa.seleniu ...

  7. asp.net 不用控件,自动登录(用于和其他系统对接的时候,自动登录系统,用户体验好)

    if (System.Web.Security.Membership.ValidateUser("admin", "123456")) { //这句话很重要,他 ...

  8. [原创]Spring Boot + Mybatis 简易使用指南(一)基础环境搭建

    前言 作者: Ant QQ:517377100 相对于使用JdbcTemplate,Mybatis可自动建立pojo类型与数据库列的映射关系,数据库访问层的开发简单了许多 所有数据库访问操作,均封装在 ...

  9. 添加自己的discuz 的积分策略

    在参考了网上的一些文章和discuzx开发手册,开始操作:1.在数据库表pre_common_credit_rule增加一条记录,rulename填“填写推荐人”,action填“txtjr”(跟下面 ...

  10. Python运维开发基础03-语法基础

    上节作业回顾(讲解+温习60分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen #只用变量和字符串+循环实现" ...