有时候我们可能要侦听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盘(USB存储设备)的热插拔事件是一项常见的需求,尤其在开发与USB设备交互的应用时。"android检测U盘插拔事件"这个标题揭示了我们要探讨的核心技术点:如何在Android应用中监听并处理U盘的...
总结来说,C#检测USB设备的插入和拔出主要依赖于WMI和`ManagementEventWatcher`,通过监听设备事件并解析设备信息,可以实现对USB设备的实时监控。这样的功能在数据备份、设备自动识别等场景中非常实用。
在开发桌面应用程序,尤其是涉及到文件系统交互的程序时,实时监测外部存储设备(如优盘)的插入和拔出状态是非常关键的。这有助于提供即时的用户体验,例如自动更新文件浏览器的内容。Qt作为一款跨平台的C++开发...
### Android Listener侦听的N种写法:深入解析与应用 在Android开发中,`Listener`接口是处理用户交互事件的核心机制之一。无论是点击、触摸还是其他类型的事件,`Listener`都提供了统一的处理方式。本文将围绕...
Win32 API中的SetWindowsHookEx函数可以用来创建全局钩子,监控系统级别的事件,包括USB设备的插入和移除。然而,这种方法需要对Win32编程有深入理解,并且可能会涉及到权限问题。 另一种方法是使用WinUSB(Windows...
在MATLAB开发中,事件侦听器是一种强大的工具,它允许程序对特定事件做出响应,例如数据更改或用户交互。本教程重点介绍了如何利用单个事件侦听器以及MATLAB UI(用户界面)中的Simulink Signal Viewer来增强模型的...
在编程和软件开发中,时间类型的侦听函数是一种重要的技术,它主要用于监控和处理与时间相关的事件或行为。这类函数通常被用在实时系统、游戏引擎、数据流处理或者任何需要定时触发某些操作的场景。在本文中,我们将...
本文将深入探讨如何实现“Android WiFi是否连接的侦听”这一功能,以及涉及的Android广播接收器的开发。 首先,我们要了解在Android系统中,WiFi的状态是由`ConnectivityManager`和`WifiManager`这两个关键类来管理...
Spring 侦听事件 总结(xmind文件)Spring 侦听事件 总结(xmind文件)Spring 侦听事件 总结(xmind文件)Spring 侦听事件 总结(xmind文件)
在本节中,我们将深入探讨事件侦听的概念及其在编程中的应用。事件侦听是ActionScript(特别是Flash和Flex)中一个重要的交互处理机制。它允许我们对用户的行为或者对象的状态变化做出响应,例如,当用户点击一个...
USB检测usb-detection使您可以侦听系统上USB设备的插入/删除事件。安装npm install usb-detection安装电子该模块使用本机扩展,需要针对您的目标版本的Electron进行编译。 可以使用构建和发布最新版本的Node.js和...
本篇将深入探讨Dojo的基础事件侦听器以及发布/预定通信机制。 首先,我们来看一下Dojo如何标准化事件和键盘处理。Dojo遵循W3C的事件模型,提供了一系列标准的鼠标和键盘事件,如`onclick`、`onmousedown`等。此外,...
注释方法以用作传感器事件的侦听器。 有四种可能的注释:@OnSensorChanged、@OnAccuracyChanged、@OnSensorNotAvailable和@OnTrigger。带注释的方法必须具有Sensors Overview Android 文档中指定的方法签名。 有关...
1. **侦听器对象(Listener Object)**:这是接收事件的对象,它可以是舞台上任何类型的实例,如影片剪辑、按钮,或者是自定义的动作脚本类实例。 2. **广播器对象(Broadcast Object)**:这是产生事件的对象,当...
8种加密狗侦听工具8种加密狗侦听工具8种加密狗侦听工具
首先简要介绍了网络侦听的原理及其潜在的安全隐患,讲述了侦听技术在Unix和Windows环 境下的几种实现技术;说明了如何检测侦听器的存在;最后提出了一种切实可行的、用来消除网络侦听 的方案。
这种功能在开发需要实时数据更新的应用程序时非常有用,例如股票交易系统、在线拍卖平台或者任何依赖于即时数据流的应用。 在Visual Studio 2008 (VS2008)中实现数据侦听,主要依赖于SQL Server的`SqlDependency`类...
JavaScript事件侦听器是JavaScript中处理用户交互或DOM(文档对象模型)变化的关键机制。它允许程序员注册回调函数,以便当特定的事件发生时,这些函数会被调用。事件可以是用户的行为,如点击按钮、鼠标移动,或者...
标题提到的"非常小且简单的工具类用于将事件侦听器绑定到元素",意味着这是一个轻量级的库或者函数集合,专门用于简化事件监听器的添加过程。 首先,我们要理解原生JavaScript中的事件处理方式。通常,我们可以使用...