有时候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. 复制mysql数据库的步骤

    Navicat 转存sql文件 然后命令 mysql -uroot -p123456 dbname < e:/backup/20141014.sql

  2. word文档批量合并工具

    #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ; #Warn ; En ...

  3. Map和Bean的相互转换

    Map和Bean的相互转换 BeanUtils位于org.apache.commons.beanutils.BeanUtils下面,其方法populate的作用解释如下: 完整方法: BeanUtil ...

  4. MySQL单机单实例安装脚本

    说明:使用mysql generic tar.gz包快速安装mysql 三个文件installation_of_single_mysql.sh.template_install-my.cnf.mysq ...

  5. Educational Codeforces Round 37-G.List Of Integers题解

    一.题目 二.题目链接 http://codeforces.com/contest/920/problem/G 三.题意 给定一个$t$,表示有t次查询.每次查询给定一个$x$, $p$, $k$,需 ...

  6. Sql2008 全文索引 简明教程

    在SQL Server 中提供了一种名为全文索引的技术,可以大大提高从长字符串里搜索数 据的速度,不用在用LIKE这样低效率的模糊查询了.   下面简明的介绍如何使用Sql2008 全文索引 一.检查 ...

  7. parentNode,parentElement,offsetParent

    offsetParent直接的将是影响元素位置的上级element,而parentElement与位置显示无关时dom中的上级element. 例如: <BODY> <div sty ...

  8. js中获取父节点,兄弟节点及处理属性节点

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. 64 位 win7 使用PLSQL Developer(转)

    由于 PLSQL Developer 没有64位版本,所以在64位系统上运行该程链接64位Oracle时就会报错,笔者为这个问题纠结了好几天,后来通过请教Google + 动手实践,终于搞定了这个问题 ...

  10. [JAVA][StringUtils]字符串工具类的常用方

    StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 ...