一、需求

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

二、实现

在使用时,需要register和unregister。

通过UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);可以获取到USB设备信息。

 
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();
}
}

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

  1. USB线插拔检测使用UEventObserver检测uevent事件的分析

    说实话这玩样儿的代码量真的很少,大家如果能耐得住性子啃一会儿也就能撸懂了. 在这之前研究USB线插拔的时候就知道了有这么个东西,当时也就看了看,但没做什么笔记.最近想用起来,却发现就只有个名字在记忆中 ...

  2. 如何在Windows服务程序中添加U盘插拔的消息

    研究了下这个问题,主要要在一般的windows服务程序中修改两个地方: 一.调用RegisterServiceCtrlHandlerEx VOID WINAPI SvcMain( DWORD dwAr ...

  3. USB 设备插拔事件处理

            Windows 系统下,设备连接至电脑或从电脑移除,系统会广播一条 WM_DEVICECHANGE 消息到所有应用程序,在程序的消息处理函数中可以对事件进行相应. 1: class C ...

  4. Android中监控home键

    一.需求 在应用开发过程中,启动服务开启线程锁等待服务返回解锁,为了避免点击home键使线程锁卡死的bug,需要监控home键,解锁线程. 二.实现 在应用时,需要register和unregiste ...

  5. 在Android中调用USB摄像头

    在网上找了很长时间,网上的资料基本都是说用外国人写的库,但实际上这个库的案例都是不能直接用的(因为权限问题),并不适合学习. 之后偶然发现有国人把这个库重新封装了,并且有源代码以及中文教程: http ...

  6. 增加 addDataScheme("file") 才能收到SD卡插拔事件的原因分析 -- 浅析android事件过滤策略

    http://blog.csdn.net/silenceburn/article/details/6083375 =========================================== ...

  7. kafka可插拔增强如何实现?

    导弹拦截,精准防御. 背景 拦截器:在不修改应用程序业务逻辑的情况下,一组基于事件的可插拔的逻辑处理链: 类比springMVC的拦截器: 这些都是通过配置拦截器,插入到应用程序中,实现可插拔的修改业 ...

  8. C#中USB转串口的拔插捕获

    // usb消息定义 public const int WM_DEVICE_CHANGE = 0x219; public const int DBT_DEVICEARRIVAL = 0x8000; p ...

  9. QTC++监控USB插拔

    #if defined(Q_OS_WIN) #include <qt_windows.h> #include <QtCore/qglobal.h> #include <d ...

随机推荐

  1. Mac 安装 mongoDB

    因Homebrew被墙, 这里使用压缩包安装. 一 从官网下载压缩包 二 解压缩 cd ~/Downloads/ tar -zxvf mongodb-osx-ssl-x86_64-4.0.8.tgz ...

  2. 前后端分离框架前端react,后端springboot跨域问题分析

    前后端分离框架前端react,后端springboot跨域问题分析 为啥跨域了 前端react的设置 springboot后端设置 为啥跨域了 由于前后端不在一个端口上,也是属于跨域问题的一种,所以必 ...

  3. 防火墙配置(CiscoPT&GNS3)

    第一部分:扩展ACL 拓扑图 地址表 Device Interface IP address R1 F 0/0 172.16.19.1 F 0/1 10.3.19.1 S 0/0/1 10.1.19. ...

  4. vue自定义滚动条

    参照element-ui的el-scroll自己实现了一个自定义组件,代码如下: <template> <div class="c-scroll-box" ref ...

  5. Python 中 Iterator和Iterable的区别

    Python中 list,truple,str,dict这些都可以被迭代,但他们并不是迭代器.为什么? 因为和迭代器相比有一个很大的不同,list/truple/map/dict这些数据的大小是确定的 ...

  6. 抖音分享和授权(iOS)

    准备工作 注册appkey 抖音开放平台 集成sharesdk 下载地址 Xcode配置:urlScheme为注册的appkey, 白名单:douyinsharesdk ,douyinopensdk ...

  7. S系统的不好的实践

    多个项目 多个分支放在一个SVN里边维护,导致多股力量并行开发时候的代码覆盖的风险可能性很大,,  好的实践是维护独立的SVN,彼此分离开来

  8. Mysql双主互备+keeplived高可用架构介绍

    一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种 ...

  9. Maven引入自定义jar包

    1.将项目打成jar包  或者下载某个jar包  放在某个目录下(随便吧,桌面也行),这里是放在F:/  jar包为 alipay.jar 2.给jar包取个名字   用原名也行(maven打包默认会 ...

  10. .gitignore语法

    没嘛用 “#”表示注释 “!”表示取消忽略 空行不作匹配 若匹配语句中无“/ ” ,便将其视为一个 glob匹配,如'abc'可以匹配 ' abc' , 'cd/abc' , 'ef/abcde.tx ...