`
473687880
  • 浏览: 535504 次
文章分类
社区版块
存档分类
最新评论

Android 侦听Usb或者SDCard热拔插事件

 
阅读更多

有时候我们可能要侦听Usb或者SDCard一些拔插事件,其实很简单,当我们做拔插的时候比如Usb或者SDCard,android底层会发出相应的Intent出来给上层应用成使用,比如SDCard或者Usbandroid都会发这样一个Intent.ACTION_MEDIA_MOUNTED,所以我们在上层应用程序中只要侦听这个Intent就可以了,看到网上很多人不知道怎么去区分到底是Usb或者SDCard,其实这个Intent里面带了一个Data,Data里面就封装了path参数,我们只要得到这个path进行判断就可以判断出到底是Usb还是SDCard了

android底层frameworks/base/services/java/com/android/server/MountService.java发出Intent的代码如下:

if (newState == VolumeState.Mounted) {
            if (DEBUG_EVENTS) Slog.w(TAG, "updating volume state mounted");
            updatePublicVolumeState(path, Environment.MEDIA_MOUNTED);
            in = new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + path));
            in.putExtra("read-only", false);

应用程序中处理的代码:

if (action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
				String path = intent.getData().toString()
						.substring("file://".length());
				startUpGrade(intent.getData());
			}
OK,这样根据path就可以来区分usb和sdcard的事件了

分享到:
评论

相关推荐

    android检测U盘插拔事件

    在Android系统中,检测U盘(USB存储设备)的热插拔事件是一项常见的需求,尤其在开发与USB设备交互的应用时。"android检测U盘插拔事件"这个标题揭示了我们要探讨的核心技术点:如何在Android应用中监听并处理U盘的...

    C#检测USB的插入和拔出,绝对有用

    总结来说,C#检测USB设备的插入和拔出主要依赖于WMI和`ManagementEventWatcher`,通过监听设备事件并解析设备信息,可以实现对USB设备的实时监控。这样的功能在数据备份、设备自动识别等场景中非常实用。

    Qt C++ 动态检测优盘插入或拔出

    在开发桌面应用程序,尤其是涉及到文件系统交互的程序时,实时监测外部存储设备(如优盘)的插入和拔出状态是非常关键的。这有助于提供即时的用户体验,例如自动更新文件浏览器的内容。Qt作为一款跨平台的C++开发...

    Android Listener侦听的N种写法

    ### Android Listener侦听的N种写法:深入解析与应用 在Android开发中,`Listener`接口是处理用户交互事件的核心机制之一。无论是点击、触摸还是其他类型的事件,`Listener`都提供了统一的处理方式。本文将围绕...

    Form1.rar_USB 监听_USB通信_c#USB通信_usb监听_usb监听代码

    Win32 API中的SetWindowsHookEx函数可以用来创建全局钩子,监控系统级别的事件,包括USB设备的插入和移除。然而,这种方法需要对Win32编程有深入理解,并且可能会涉及到权限问题。 另一种方法是使用WinUSB(Windows...

    matlab开发-单个事件侦听器和Matlabui的SimulinksignalView

    在MATLAB开发中,事件侦听器是一种强大的工具,它允许程序对特定事件做出响应,例如数据更改或用户交互。本教程重点介绍了如何利用单个事件侦听器以及MATLAB UI(用户界面)中的Simulink Signal Viewer来增强模型的...

    时间类型侦听函数

    在编程和软件开发中,时间类型的侦听函数是一种重要的技术,它主要用于监控和处理与时间相关的事件或行为。这类函数通常被用在实时系统、游戏引擎、数据流处理或者任何需要定时触发某些操作的场景。在本文中,我们将...

    android wifi是否连接的侦听

    本文将深入探讨如何实现“Android WiFi是否连接的侦听”这一功能,以及涉及的Android广播接收器的开发。 首先,我们要了解在Android系统中,WiFi的状态是由`ConnectivityManager`和`WifiManager`这两个关键类来管理...

    Spring 侦听事件 总结(xmind文件)

    Spring 侦听事件 总结(xmind文件)Spring 侦听事件 总结(xmind文件)Spring 侦听事件 总结(xmind文件)Spring 侦听事件 总结(xmind文件)

    第六节 事件侦听.docx

    在本节中,我们将深入探讨事件侦听的概念及其在编程中的应用。事件侦听是ActionScript(特别是Flash和Flex)中一个重要的交互处理机制。它允许我们对用户的行为或者对象的状态变化做出响应,例如,当用户点击一个...

    node-usb-detection:列出系统中的USB设备并检测其更改

    USB检测usb-detection使您可以侦听系统上USB设备的插入/删除事件。安装npm install usb-detection安装电子该模块使用本机扩展,需要针对您的目标版本的Electron进行编译。 可以使用构建和发布最新版本的Node.js和...

    Dojo基础2事件侦听器

    本篇将深入探讨Dojo的基础事件侦听器以及发布/预定通信机制。 首先,我们来看一下Dojo如何标准化事件和键盘处理。Dojo遵循W3C的事件模型,提供了一系列标准的鼠标和键盘事件,如`onclick`、`onmousedown`等。此外,...

    Android - Annotate 方法用作传感器的侦听器_Java_代码_相关文件_下载

    注释方法以用作传感器事件的侦听器。 有四种可能的注释:@OnSensorChanged、@OnAccuracyChanged、@OnSensorNotAvailable和@OnTrigger。带注释的方法必须具有Sensors Overview Android 文档中指定的方法签名。 有关...

    AS2中的侦听器

    1. **侦听器对象(Listener Object)**:这是接收事件的对象,它可以是舞台上任何类型的实例,如影片剪辑、按钮,或者是自定义的动作脚本类实例。 2. **广播器对象(Broadcast Object)**:这是产生事件的对象,当...

    8种加密狗侦听工具8种加密狗侦听工具

    8种加密狗侦听工具8种加密狗侦听工具8种加密狗侦听工具

    网络侦听以及反侦听的原理和实现

    首先简要介绍了网络侦听的原理及其潜在的安全隐患,讲述了侦听技术在Unix和Windows环 境下的几种实现技术;说明了如何检测侦听器的存在;最后提出了一种切实可行的、用来消除网络侦听 的方案。

    VS2008数据侦听

    这种功能在开发需要实时数据更新的应用程序时非常有用,例如股票交易系统、在线拍卖平台或者任何依赖于即时数据流的应用。 在Visual Studio 2008 (VS2008)中实现数据侦听,主要依赖于SQL Server的`SqlDependency`类...

    javascript事件侦听器

    JavaScript事件侦听器是JavaScript中处理用户交互或DOM(文档对象模型)变化的关键机制。它允许程序员注册回调函数,以便当特定的事件发生时,这些函数会被调用。事件可以是用户的行为,如点击按钮、鼠标移动,或者...

    非常小且简单的工具类用于将事件侦听器绑定到元素

    标题提到的"非常小且简单的工具类用于将事件侦听器绑定到元素",意味着这是一个轻量级的库或者函数集合,专门用于简化事件监听器的添加过程。 首先,我们要理解原生JavaScript中的事件处理方式。通常,我们可以使用...

Global site tag (gtag.js) - Google Analytics