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

一.需求 在Android应该开发过程中,用到了USB通讯,需要应用监控USB设备的插入和拔出,从而刷新USB设备列表. 二.实现 在使用时,需要register和unregister. 通过UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);可以获取到USB设备信息.   public class USBBroadcastReceiver extends BroadcastRecei…
说实话这玩样儿的代码量真的很少,大家如果能耐得住性子啃一会儿也就能撸懂了. 在这之前研究USB线插拔的时候就知道了有这么个东西,当时也就看了看,但没做什么笔记.最近想用起来,却发现就只有个名字在记忆中了. 好了,又扯了这么多,来回到正题. 首先按照技术博客一贯的作风,得先有个入口点,这里我就先从怎么使用这个UEventObserver开始一步步分析. 首先这玩样儿是java代码,所以你就别想着c++什么用了. 这里我举例了USB线插拔来分析,代码地址如下: frameworks/base/ser…
研究了下这个问题,主要要在一般的windows服务程序中修改两个地方: 一.调用RegisterServiceCtrlHandlerEx VOID WINAPI SvcMain( DWORD dwArgc, LPTSTR *lpszArgv ){    // Register the handler function for the service. gSvcStatusHandle = RegisterServiceCtrlHandlerEx(         SVCNAME,       …
        Windows 系统下,设备连接至电脑或从电脑移除,系统会广播一条 WM_DEVICECHANGE 消息到所有应用程序,在程序的消息处理函数中可以对事件进行相应. 1: class CMainDlg : public CDialogImpl<CMainDlg> { 2: public: 3: enum { IDD = IDD_MAINDLG }; 4: 5: BEGIN_MSG_MAP(CMainDlg) 6: ...... 7: MESSAGE_HANDLER(WM_DEVI…
一.需求 在应用开发过程中,启动服务开启线程锁等待服务返回解锁,为了避免点击home键使线程锁卡死的bug,需要监控home键,解锁线程. 二.实现 在应用时,需要register和unregister. public class HomeWatcherReceiver extends BroadcastReceiver { private static final String SYSTEM_DIALOG_REASON_KEY = "reason"; private static f…
在网上找了很长时间,网上的资料基本都是说用外国人写的库,但实际上这个库的案例都是不能直接用的(因为权限问题),并不适合学习. 之后偶然发现有国人把这个库重新封装了,并且有源代码以及中文教程: http://blog.csdn.net/andrexpert/article/details/78324181 https://github.com/jiangdongguo/AndroidUSBCamera 另一种思路就是用openCV了,配合Qt开发跨平台程序应该会挺不错.不过测试用的手机被借走了,所…
http://blog.csdn.net/silenceburn/article/details/6083375 ===========================================     如有错漏请不吝拍砖指正,转载请注明出处,非常感谢 有一个问题,在网上被频繁的问到,就是为什么自定义的Receiver总是无法接收到SD卡插拔的事件. 而此问题大部分情况下可以通过增加一句代码解决: filter.addDataScheme("file");  // filter是…
导弹拦截,精准防御. 背景 拦截器:在不修改应用程序业务逻辑的情况下,一组基于事件的可插拔的逻辑处理链: 类比springMVC的拦截器: 这些都是通过配置拦截器,插入到应用程序中,实现可插拔的修改业务逻辑: kafka在0.10.0.0版本中开始引入拦截器.分为生产者拦截器和消费者拦截器,类似责任链的方式编排多个拦截器为一个大拦截器. 配置方法:配置参数 Properties props = new Properties(); List<String> interceptors = new…
// usb消息定义 public const int WM_DEVICE_CHANGE = 0x219; public const int DBT_DEVICEARRIVAL = 0x8000; public const int DBT_DEVICE_REMOVE_COMPLETE = 0x8004; public const UInt32 DBT_DEVTYP_PORT = 0x00000003; [StructLayout(LayoutKind.Sequential)] struct DE…
#if defined(Q_OS_WIN) #include <qt_windows.h> #include <QtCore/qglobal.h> #include <dbt.h> #endif QByteArray *MainWindow::receivedData=new QByteArray();//接收到数据 ThreadComPort *MainWindow::threadInitComPort=0; #if defined(Q_OS_WIN) static…
[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…
对开发者和DBA们来说,对shell脚本批量任务的影响成了多宿主选项带来的最大改变之一.因为多宿主环境通过服务来连接到可插拔数据库,因此,依靠CRON和OS认证成了换成多宿主环境后的一个最大问题.本文提供了一些办法来解决之前shell脚本工作在多宿主环境的问题. 1.        设置容器 对于那些工作在容器级的DBA脚本来说,用"/ AS SYSDBA"就可以像之前一样工作.当你在可插拔数据库内运行脚本时,就会出现问题.解决这个问题的最简单办法就是继续用"/ asSYSD…
一看标题肯定会联想到使用动态编织的方式实现AOP编程,不过这不是作者本文讨论的重点. 本文讨论另外三种在netcore中可实现的方式,Filter(过滤器,严格意义上它算是AOP方式),DynamicProxy(动态代理方式,JAVA上早已不是新鲜事),Middleware(netcore中间件所实现的AOP方式) 什么是AOP编程 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.…
Oracle12c中的多宿主选项允许一个容器数据库(CDB)容纳多个独立的可插拔数据库(PDB).本文将展示如何配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB).1. 配置CDB中的实例参数(ALTER SYSTEM)配置CDB实例参数和配置非CDB实例参数没什么不一样.ALTER SYSTEM命令用来设置初始化参数,而有些数据库配置修改需要用ALTER DATABASE命令.作为一个特权用户登录且连接到根容器时,任何ALTER SYSTEM命令默认都将作用于该根容器.这意味着如下…
Android中判断网络连接是否可用及监控网络状态 作者: 字体:[增加 减小] 类型:转载 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android中判断网络连接是否可用及监控网络状态,感兴趣的朋友可以参考下   获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE&quo…
title author date CreateTime categories WPF 判断USB插拔 lindexi 2018-08-10 19:16:53 +0800 2018-8-5 13:0:31 +0800 WPF 本文告诉大家如何在 WPF 在用户插拔 USB 收到消息 首先需要在一个窗口重写OnSourceInitialized,在这里可以拿到窗口的指针 protected override void OnSourceInitialized(EventArgs e) { base.…
我们知道,三星Android手机将USB读卡器通过OTG线插入Micro USB插口后,插拔读卡器里的SD卡,文件管理器也能够识别卡的插拔:而很多手机的OTG连上USB读卡器也来插拔SD卡,会发现文件管理器无法加载SD卡.而将USB读卡器放到Windows上或者桌面Linux上,我们发现插拔读卡器里的SD卡也是有效的. 究其原因是Android的用户空间或者内核空间没有处理好SCSI 的TUR(Test Unit Ready)命令. 由于项目需要,我实现了Android OTG支持读卡器里的SD…
1.Android中广播分为静态注册和动态注册 2.下面是一个简单静态注册的例子 创建一个继承BroadcastReceiver的子类 public class DeviceBootReceiver extends BroadcastReceiver { private static final String TAG = DeviceBootReceiver.class.getName(); @Override public void onReceive(Context context, Int…
ARM上的linux如何实现无线网卡的冷插拔和热插拔 fulinux 凌云实验室 1. 冷插拔 如果在系统上电之前就将RT2070/RT3070芯片的无线网卡(以下简称wlan)插上,即冷插拔.我们通过分析系统启动流程过程中的运行的脚本,将启动wlan的脚本加入其中,就可以实现自动运行wlan.. 系统启动后的第一个进程/sbin/init.init进程最主要的功能就是准备软件执行的环境,包括系统的主机名.网络配置.语系处理.文件系统格式以及其他服务的启动等.而所有的操作都会通过init的配置文…
今天在研究Android中实现Android 4.2.2源码中的Music应用的源码,关于通过耳机按键控制音乐播放的实现,有点好奇,就仔细分析了一下源码, 主要由 MediaButtonIntentReceiver 这个类来实现. 在AndroidManifest.xml中有如下Receiver的注册: <receiver android:name="com.huawei.imax.music.MediaButtonIntentReceiver" > <intent-…
Android中的广播 广播接受器,可以比喻成收音机.而广播则可以看成电台. Android系统内部相当于已经有一个电台 定义了好多的广播事件,比如外拨电话 短信到来 sd卡状态 电池电量变化... 广播的两种注册方式 静态注册 静态注册写在AndroidManifest.xml,即使没有进入应用(没有写在onCreate里面),也可以接收到.如接收开机广播. 监听外拨电话 写个拨打电话,自动加区号的功能.区号可以自定义,每次填了区号后,会存到偏好文件中.若不改区号,每次默认打电话都会加这个区号…
之前做了一个关于Android USB通信的Case,通过Android的USB总线给Zigbee供电,和板载的Zigbee(基于Zigbee的自组网)进行通信.要使用Android的USB Host功能,首先你需要确定你的平板(手机)设备是否支持USB Host的功能,你可以从手机开发商的简介里面看到,这个功能是由CPU直接关联的,和软件没有关系,所以,你可以把你的外设模块插进去你的Android设备看看有没有反应(比如:指示灯亮),假如没有反应,那肯定是不支持的. 废话说了那么多了,进入正题…
在 .NET Framework 4.7 以前,WPF 程序的触摸处理是基于操作系统组件但又自成一套的,这其实也为其各种各样的触摸失效问题埋下了伏笔.再加上它出现得比较早,触摸失效问题也变得更加难以解决.即便是 .NET Framework 4.7 以后也需要开发者手动开启 Pointer 消息,并且存在兼容性问题. 本文将通过解读 WPF 触摸部分的源码,分析 WPF 插拔设备触摸失效的问题.随后,会给微软报这个 Bug. 本文使用多种语言编写,请选择适合你阅读的语言: 通过解读 WPF 触摸…
本文转载自:https://blog.csdn.net/tianruxishui/article/details/37902959 有关USB android框架的链接 http://blog.sina.com.cn/s/articlelist_1627432177_0_1.html ICS4.0下Framework层的usb框架 Android 下的usb主要工作还是在android的framework层.主要有以下几个文件: 1.1UsbDeviceManager.java/高 主要完成功能…
本文转载自:https://blog.csdn.net/zhouchengxi/article/details/53982222 这里我将U盘作为例子来说明解析. android4.1版本时U盘插拔时的广播 在android4.1时我们可以用以下的BroadcastReceiver接收U盘广播. <intent-filter> <action android:name="android.intent.action.MEDIA_MOUNTED" /> <ac…
之前做了一个关于Android USB通信的Case,通过Android的USB总线给Zigbee供电,和板载的Zigbee(基于Zigbee的自组网)进行通信.要使用Android的USB Host功能,首先你需要确定你的平板(手机)设备是否支持USB Host的功能,你可以从手机开发商的简介里面看到,这个功能是由CPU直接关联的,和软件没有关系,所以,你可以把你的外设模块插进去你的Android设备看看有没有反应(比如:指示灯亮),假如没有反应,那肯定是不支持的. 废话说了那么多了,进入正题…
今天在做项目的时候,需要对耳机的插拔事件进行监听,所以就写了如下的一个小demo,对耳机监听事件进行验证.直接看代码 package com.example.alert; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; import android.widget.Toast; publi…
微信公众号:CodingAndroid CSDN:http://blog.csdn.net/xinpengfei521 1.背景简介 我们公司开发了一款室内机平板APP应用,要求平板能去控制智能门锁.等其他智能设备,智能门锁不是我们公司开发的,与我们公司属于合作关系. 2.分析及实现思路 智能门锁的控制是通过使用 433射频(不了解的请百度)来进行通讯的: 平板是没法与智能门锁直接进行通讯,但是厂家提供了一个433通讯模块(支持串口): 而平板(支持OTG)是支持USB转串口模块的,所以整个流程…
回到占占推荐博客索引 核心组件 我心中的核心组件,核心组件就是我认为在项目中比较常用的功能,如日志,异常处理,消息,邮件,队列服务,调度,缓存,持久化,分布式文件存储,NoSQL存储,IoC容器,方法拦截等等. 对于以上内容可以说即是一个大餐,又是一个挑战,就让我带着大家去迎接这份挑战吧,呵呵! 可插拔的AOP AOP即面向切面的编程,是指将一个公用的与领域无关的组件抽象出来,方便在各个项目中使用.在微软很多项目中,基本都会有这种组件,它们叫它frameworks,或者叫core,从字面上看,就…
阅读书籍: Android开发艺术探索 Android开发进阶从小工到专家 对线程池原理的简单理解: 创建多个线程并且进行管理,提交的任务会被线程池指派给其中的线程进行执行,通过线程池的统一调度和管理使得多线程的使用更简单,高效. 使用线程池的优势: 1.重用线程池中的线程,避免因为线程的创建和销毁所带来的性能开销. 2.能有效控制线程池的最大并发数,避免大量的线程之间因互相抢占系统资源而导致的阻塞现象. 3.能够对线程进行简单的管理,并提供定时执行以及指定间隔循环执行等功能. ThreadPo…