注册广播监听usb的挂载状态,过滤 vid 和 pid,以下是源码:

class IdUsbManager private constructor() {val pid = 50010val vid = 1024private var mIdUSBManagerListener: IdUSBManagerListener? = nullcompanion object {private val mInstance: IdUsbManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {IdUsbManager()}fun getInstance() = mInstance}private val usbMgrReceiver: BroadcastReceiver = object : BroadcastReceiver() {override fun onReceive(context: Context, intent: Intent) {val action = intent.actionif (UsbManager.ACTION_USB_DEVICE_ATTACHED == action) {val device =intent.getParcelableExtra<Parcelable>(UsbManager.EXTRA_DEVICE) as UsbDeviceLog.e(this.javaClass.name,"IdUsbManager USB接入 ${device.vendorId} ${device.productId}")if (device.vendorId == vid && device.productId == pid) {//USB接入mIdUSBManagerListener?.let {it.onUSBArrived()}}} else if (UsbManager.ACTION_USB_DEVICE_DETACHED == action) {val device =intent.getParcelableExtra<Parcelable>(UsbManager.EXTRA_DEVICE) as UsbDeviceLog.e(this.javaClass.name,"IdUsbManager USB被拔出 ${device.vendorId} ${device.productId}")if (device.vendorId == vid && device.productId == pid) {//USB被拔出mIdUSBManagerListener?.let {it.onUSBRemoved()}}}}}//注册监听fun registerUSBPermissionReceiver(context: Context?): Boolean {context?.let {val filter = IntentFilter()//filter.addAction(ACTION_USB_PERMISSION)filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED)filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED)context!!.registerReceiver(usbMgrReceiver, filter)return true}return false}//移除广播fun unRegisterUSBPermissionReceiver(context: Context?) {context?.let {it.unregisterReceiver(usbMgrReceiver)}}fun setIdUSBManagerListener(listener: IdUSBManagerListener): IdUsbManager {this.mIdUSBManagerListener = listenerreturn this}interface IdUSBManagerListener {fun onUSBArrived()fun onUSBRemoved()}}

Android广播监听usb插拔状态相关推荐

  1. Android如何监听USB插拔

    USB.USB转串口.串口通信的区别与实现 全网独一无二的USB.USB转串口二合一通信SDK 正常来说,每次插拔USB设备的时候,系统都会发出广播,所以只需监听对应的广播即可.但是有一小部分设备可能 ...

  2. 记录关于监听HDMI插拔广播

    记录关于监听HDMI插拔广播 hdmi的广播有两种,目前大部分文章讲诉的都是使用android.intent.action.HDMI_PLUGGED来监听hdmi插拔的状态变化,但是这个方法在高版本中 ...

  3. 【C#】Winform监听USB串口设备拔插

    [C#]Winform监听USB串口设备拔插 零.问题 最近在开发串口相关的软件,需要检测串口拔掉后主动关闭串口,因此需要检测到USB的拔插事件. 一.解决 在主窗口From类下覆盖WndProc方法 ...

  4. android广播监听短信并显示内容

    still直接代码啦- <receiver android:name=".receive"> <intent-filter> <action andr ...

  5. C# USB插拔状态监控工具

    由于公司提供的dll库文件有bug而且源码不全,只能搜索到部分USB设备,例如蓝牙适配器和摄像头均不能识别,因此网上找了一些例程进行调试. 本方法采用的基本原理是在WMI的基础上对计算机上的注册表进行 ...

  6. 用广播监听安卓设备电量状态

      发送通知 这次邮件我们将会讨论怎么获取电量状态在安卓设备上,为了完成这个目标,我们将会使用到广播. What is BroadcastReceiver? A broadcast receiver ...

  7. Android中监听判断网络连接状态的方法

    这个python代码是用来从DHT网络(一种分布式的"磁力链接"的共享网络,这个叫法是我个人对这种分布式网络的称呼)中,检测收集"磁力链接".每一个磁力链接就对 ...

  8. android u盘挂载监听,Android SD卡及U盘插拔状态监听及内容读取

    本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...

  9. Android SD卡及U盘插拔状态监听和内容读取

    本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...

最新文章

  1. 【Web前端培训基础知识】ES5及ES6this详解
  2. JAVA 的 Date、Calendar的常用用法
  3. mongoDB - 日常操作四
  4. Android 程序 正确修改包名的方式(源代码)
  5. boost::gregorian模块实现日期序列化的测试程序
  6. 走出舒适圈,从来都不简单
  7. 集群理论详解(续一)
  8. c语言memcmp和java的_C语言memcmp()函数:比较m字节长的两个字符串s1和s2
  9. java 判断是不是微信打开_Java判断浏览器是微信还是支付宝
  10. Activity返回值
  11. Rust : cargo简介
  12. 超详细Eclipse安装教程
  13. t470键盘拆解_做工保持良好水准 ThinkPad T470笔记本拆机解析
  14. dwg格式转换成html,DWG格式转换器BitRecover DWG Converter Wizard
  15. 恩尼格玛计划续章…以及,我们正在招贤纳士
  16. python sasl_python用sasl的方式连接ldap提示
  17. Oracle的系统和对象权限 查看用户包含的各类权限
  18. Python创建免费Ip代理池,伪装Ip。
  19. vue 和 react的对比
  20. 解决Zxing解析本地图片二维码,识别率低,识别不出来的问题!

热门文章

  1. 2022-2028年中国乙酸钴行业发展现状调研及市场前景规划报告
  2. 2022-2028年中国绝热隔音材料行业投资分析及前景预测报告
  3. 2022-2028年中国钽酸锂单晶行业市场调查分析及投资发展潜力报告
  4. 2022-2028年中国半导体用环氧塑封料(EMC)行业市场全景调查及投资前景分析报告
  5. 每个人都应该有一个梦想
  6. 路遥知马力——Momentum动量梯度
  7. 深度学习原理与框架-CNN在文本分类的应用 1.tf.nn.embedding_lookup(根据索引数据从数据中取出数据) 2.saver.restore(加载sess参数)...
  8. 如何写新的Python OP
  9. 使用多个推理芯片需要仔细规划
  10. 如何构建虚拟护士应用程序?