有时候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. POJ 1258 Agri-Net (prim水题)

    Agri-Net Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) Total Subm ...

  2. java之mapstruct的应用

    一.MapStruct是一个代码生成器,简化了不同的Java Bean之间映射的处理,所以映射指的就是从一个实体变化成一个实体.例如我们在实际开发中,DAO层的实体和一些数据传输对象(DTO),大部分 ...

  3. PHP调用Linux的命令行执行文件压缩命令&&创建文件夹修改权限

    一开始,我和普通青年一样,想到用PHP内置的 ZipArchive纠结的是环境上没安装zip扩展,想采用用PHP调用Linux的命令行 ,执行压缩命令,感兴趣的朋友可以了解下,希望本文对你有所帮助 前 ...

  4. mongodb与SQL常见语句对照

    inert into users value(3,5) db.users.insert({a:3,b:5})     select a,b from users db.users.find({}, { ...

  5. Educational Codeforces Round 37-E.Connected Components?题解

    一.题目 二.题目链接 http://codeforces.com/contest/920/problem/E 三.题意 给定一个$N$和$M$.$N$表示有$N$个点,$M$表示,在一个$N$个点组 ...

  6. 第7课 Qt中的坐标系统

    1. 坐标系统 (1)GUI操作系统都有特定的坐标系统 (2)图形界面程序在坐标系统中进行窗口和部件的定位 (3)定位类型 ①顶级窗口部件的定位 ②窗口内部件的定位 ③窗口部件的大小设置 (4)QWi ...

  7. 初尝微信小程序开发与实践

    这可能是一个java程序员最不务正业的一次分享了. 小程序的火热相信不用我多说了,年初的时候老婆去浦东某达面试,甚至都被问有没有小程序测试经验.俨然小程序成为了互联网公司自PC,WAP,安卓,IOS之 ...

  8. django-常用过滤器

    django常用过滤器 add :字符串相加,数字相加,列表相加,如果失败,将会返回一个空字符串. default:提供一个默认值,在这个值被django认为是False的时候使用.比如:空字符串.N ...

  9. 将com口2号引脚、3号引脚引出来,两个引脚对接会出发中断

    思路:让程序一直不停的发数据,再设一个及接收事件,接通(短路)后触发. 灵感文章: 方案一:  去AQ解决话务台问题,下了车就牛不停蹄的去买了串口挡板,db9 female接口,根据2-3.3-2.5 ...

  10. LUA 运行期间不独占线程的递归,通过回调实现

    function main(d) local function func(d) moveto(d, function() print("d=======", d) d = d - ...