Android中监控USB的插拔

一、需求

在Android应该开发过程中,用到了USB通讯,需要应用监控USB设备的插入和拔出,从而刷新USB设备列表。

二、实现

在使用时,需要register和unregister。

public class USBBroadcastReceiver extends BroadcastReceiver {

private OnUsbListener usbListener;

@Override    public void onReceive(Context context, Intent intent) {        String action = intent.getAction();        if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action) ||                UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {            usbListener.onStateChanged();        }    }

public void registerUsbReceiver(Context context) {        IntentFilter filter = new IntentFilter();        filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);        filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);        context.registerReceiver(this, filter);    }

public void unregisterUsbReceiver(Context context) {        context.unregisterReceiver(this);    }

public void setUsbListener(OnUsbListener usbListener) {        this.usbListener = usbListener;    }

@FunctionalInterface    public interface OnUsbListener {        void onStateChanged();    }}
时间: 2025-01-14 15:25:29

Android中监控USB的插拔的相关文章

Android中监控home键

一.需求 在应用开发过程中,启动服务开启线程锁等待服务返回解锁,为了避免点击home键使线程锁卡死的bug,需要监控home键,解锁线程. 二.实现 在应用时,需要register和unregister. public class HomeWatcherReceiver extends BroadcastReceiver { private static final String SYSTEM_DIALOG_REASON_KEY = "reason"; private static f

在Android中调用USB摄像头

在网上找了很长时间,网上的资料基本都是说用外国人写的库,但实际上这个库的案例都是不能直接用的(因为权限问题),并不适合学习. 之后偶然发现有国人把这个库重新封装了,并且有源代码以及中文教程: http://blog.csdn.net/andrexpert/article/details/78324181 https://github.com/jiangdongguo/AndroidUSBCamera 另一种思路就是用openCV了,配合Qt开发跨平台程序应该会挺不错.不过测试用的手机被借走了,所

Android_ UEventObserver_监听USB插拔

本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/38950363 1.简介 最近做一个项目,主要通过usb完成pc与Android端的数据传输.但是根据api提供的无法监听usb的插拔,有解释为不同版本会存在BUG.本打算放弃跳过监听usb,改为在连上usb后pc点击按钮发出一个广播来主动打开Android端的应用程序,然后通过socket完成数据交互.这里主要通过UEventObserver,而该类位于/frame

Android中的ueventd

前言 与Linux相同,Android中的应用程序通过设备驱动访问硬件设备.设备节点文件是设备驱动的逻辑文件,应用程序使用设备节点文件来访问驱动程序. 在Linux中,运行所需的设备节点文件被被预先定义在"/dev"目录下.应用程序无需经过其它步骤,通过预先定义的设备节点文件即可访问设备驱动程序. 但根据Android的init进程的启动过程,我们知道,Android根文件系统的映像中不存在"/dev"目录,该目录是init进程启动后动态创建的. 因此,建立Anro

Android底层开发之耳机插拔与音频通道切换实例

Android底层开发之耳机插拔与音频通道切换实例 由于使用的是耳机 麦克分离式的耳机,所以要分别上报事件.在Android系统层耳机插孔的检测是基于/sys/class/switch/h2w/state的值来判断的(以4.4.4_r2为例子位于WiredAccessoryManager.java). 只要在内核中实现一个「或真或假」的基于switch类的h2w开关.Android系统就可以监听到插拔信息. 在播放音乐的时候插入耳机,使用tinymix(参考:Android音频底层调试-基于ti

android 监听 USB 拔插广播消息

Java: 1 package com.example.communication; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.widget.Toast; 7 8 public class USBBroadcastReceiver extends BroadcastReceiver

C#.NET U盘插拔监控

[1]涉及的知识点 1) windows消息处理函数 ? 1 protected override void WndProc(ref Message m) 捕获Message的系统硬件改变发出的系统消息 2) 硬件信息类 ? 1 DriveInfo [2]核心函数 消息常量: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 /// <summary> /// windows消息常量 /// </summary> class CWn

Android中判断网络连接是否可用及监控网络状态

Android中判断网络连接是否可用及监控网络状态 作者: 字体:[增加 减小] 类型:转载 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android中判断网络连接是否可用及监控网络状态,感兴趣的朋友可以参考下 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"

网络游戏中应用可插拔工厂处理消息

嫌翻得不好的去看后面的原文吧 ———————————————————————————————————————————————————————————— 问题 今天的网络多人游戏必须处理大量不同的消息.有标准的消息(创建玩家.删除玩家.聊天等等),也有游戏中特定的消息.所有这些消息都有它们自己的数据项,它们必须能够通过一个连接发送出去并在另一端重新组装.作为网络游戏开发者,你的工作就是梳理一切以便你的游戏能够以一种优雅的方式发送和接收消息. 在C++中最明显的做到这一点方式就是用类来表示不同的消息