Android-sdcard广播的接收处理
有时候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广播的接收处理的更多相关文章
- 【Android】Android 4.0 无法接收开机广播的问题
[Android]Android 4.0 无法接收开机广播的问题 前面的文章 Android 开机广播的使用 中 已经提到Android的开机启动,但是在Android 4.0 有时可以接收到开机 ...
- Android的有序广播和无序广播(解决安卓8.0版本之后有序广播的接收问题)
前言 Google从Android8.0版本开始,对在清单文件中静态注册广播做了限制. *** 特殊广播(动态注册广播接收者) 说:有序广播和无序广播之前,咱们先来说下Android中一些特殊的广播如 ...
- Android静态注册广播无法接收的问题(8.0+版本)
如果你静态注册的广播无法接收到消息,请先检查下:你的安卓版本是不是8.0+ * 前言** Google官方声明:Beginning with Android 8.0 (API level 26), t ...
- Android 静态广播和动态广播接收顺序
Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播 - 被广播接收器接收后,可被终止,无法往下继续传达. 典型代表:短信广播 普通广播 - 发送至每一 ...
- android 49 广播接收者中启动其他组件
main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andro ...
- 【Android】广播BrocastReceiver
1.Android中广播主要分为两种:标准广播和有序广播. 标准广播:完全异步执行.广播发出后,所有的广播接收器几乎在同一刻收到广播事件,没有先后顺序之分. 优点:效率高 缺点:不能被截断 有序广播: ...
- android在广播接收器BroadcastReceiver里面再进行发送广播,造成当前广播接收器不断循环执行问题
最近在公司处理项目时,用到锁屏状态弹出activity进行提示,类似QQ消息弹屏提示的功能.当中用到了,假如该弹出activity已经位于锁屏界面外时,将不进行再次弹窗,而是发送广播进行通知数据更新, ...
- Android之 广播
(以下内容是阅读郭霖大神的<第一行代码>后自己总结的) 1.概述 广播是Android的四大组件之一. Android的广播机制十分灵活. 2.发送广播 如上图Android的广播主要分为 ...
- Android学习--广播机制
广播机制简介 Android的广播可以分为两种类型的,标准广播和有序的广播: 标准广播: 是一种完全异步执行的广播,在广播发出去之后,所有的广播接收器几乎是同一时接收到这条广播. 有序广播: 是一 ...
- android Broadcast广播消息代码实现
我用的是Fragment , 发送写在一个类中,接收写在另外一个类的内部类中.代码动态实现注册. 代码: myReceiver = new zcd.netanything.MyCar.myReceiv ...
随机推荐
- xmlns:app
Android自定义控件的属性,网上文章已经很多,之前看了也照着写了,其中有一个就是要自定义一个xml的命名空间后然后再给自定义属性赋值,后来发现不知道什么时候开始Android把这个改了,统一用 x ...
- 【洛谷】P1247 取火柴游戏(Nim)
题目 传送门:QWQ 分析 蒟蒻根本不会博弈论..... 只知道异或和判断Nim游戏.. 不是很懂输出的选择,所以发一篇博客以待复习 代码 #include <bits/stdc++.h> ...
- 使用Fiddler对IPhone手机的应用数据进行抓包分析
原文出自: http://www.cr173.com/html/20064_1.html Fiddler能捕获ISO设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备. ...
- win8 机器硬盘异响
win8系统安装在ssd上,挂了一块希捷2T的机器硬盘做数据存储用,经常发生异响.类似通电断电的声音.因为硬盘的APM节能使磁头归位造成的声音. 使用CrystalDiskInfo软件禁用APM,异响 ...
- Selenium Webdriver——Table类封装
WebTable.java import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebEl ...
- .NET 同步 异步 委托
1.定义委托: using System; using System.Collections.Generic; using System.IO; using System.Linq; using Sy ...
- FDStoredProc 存储过程控件 强
//FireDAC FDStoredProc1->StoredProcName = "myReport1"; FDStoredProc1->Prepare(); FDS ...
- ManagedProperty not injected in @FacesConverter
I'm trying to inject a ManagedBean in my FacesConverted the following way: @ManagedBean @RequestScop ...
- forbidden Derby database starting with weblogic instance
Now doing a new project which choose the newest weblogic 12.1.2.0.0 as web container.But found the ...
- cglib动态代理代码示例
cglib动态代理代码示例 引用包cglib-xxx.jar 非Maven项目还需要手动引用包asm-xxx.jar 业务类(不需要定义接口) cglib代理类(实现接口MethodIntercept ...