USB外接输入设备(如:键盘,鼠标等)的监听
来源:互联网 发布:手机信号防干扰软件 编辑:程序博客网 时间:2024/05/22 14:58
1,USB存储设备监听(如:U盘,移动硬盘):
//USB存储设备 插拔监听与 SD卡插拔监听一致。
private USBBroadCastReceiver mBroadcastReceiver;
IntentFilter iFilter =
new
IntentFilter();
iFilter.addAction(Intent.ACTION_MEDIA_EJECT);
iFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
iFilter.addAction(Intent.ACTION_MEDIA_REMOVED);
iFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
iFilter.addDataScheme(
"file"
);
mBroadcastReceiver =
new
USBBroadCastReceiver();
registerReceiver(mBroadcastReceiver, iFilter);
private class USBBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if
(action.equals(Intent.ACTION_MEDIA_EJECT)) {
//USB设备移除,更新UI
}
else
if
(action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
//USB设备挂载,更新UI
}
}
}
2.获得挂载的USB设备的存储空间使用情况
StatFs 一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况
StatFs 常用方法:
getAvailableBlocks()
返回 Int ,获取当前可用的存储空间
getBlockCount()
返回 Int ,获取该区域可用的文件系统数
getBlockSize()
返回 Int ,大小,以字节为单位,一个文件系统
getFreeBlocks()
返回 Int ,该块区域剩余的空间
restat(String path)
执行一个由该对象所引用的文件系统
// 获得挂载的USB设备的存储空间使用情况
public static String getAvailableStore(Context context,String filePath) {
// 取得sdcard文件路径
StatFs statFs =
new
StatFs(filePath);
// 获取block的SIZE
long blocSize = statFs.getBlockSize();
// 获取BLOCK总数量
long totalBlocks = statFs.getBlockCount();
// 可使用的Block的数量
long availaBlock = statFs.getAvailableBlocks();
// long total = totalBlocks * blocSize;
long availableSpare = availaBlock * blocSize;
String usedSize = Formatter.formatFileSize(context, (totalBlocks - availaBlock) * blocSize);
String availableSize = Formatter.formatFileSize(context, availaBlock * blocSize);
return
usedSize +
" / "
+ availableSize;
// 空间:已使用/可用的;
}
3,USB外接输入设备(如:键盘,鼠标,扫描枪)
try
{
//获得外接USB输入设备的信息
Process p=Runtime.getRuntime().exec(
"cat /proc/bus/input/devices"
);
BufferedReader
in
=
new
BufferedReader(
new
InputStreamReader(p.getInputStream()));
String line =
null
;
while
((line =
in
.readLine())!=
null
){
String deviceInfo = line.trim();
//对获取的每行的设备信息进行过滤,获得自己想要的。
}
}
catch
(Exception e) {
e.printStackTrace();
}
另:设备信息也可以通过 adb shell 进入执行 cat /proc/bus/input/devices看到。
USB外接输入设备信息含义如下:
I: Bus=0019 Vendor=0002 Product=0001 Version=0100 //在Android设备与USB设备数据交互的是否使用到。
N: Name="vmouse" //外接的USB设备的名称。
H: Handlers=sysrq kbd event4 //输入设备监听事件
P: Phys=vmouse/input0
S: Sysfs=/devices/virtual/input/input0
这两行可用于识别该USB设备连接在Android设备的哪一个USB口.
4,监听USB外接输入设备输入内容
1.)对键盘输入进行监听 getevent /dev/input/event4(指定的event)
监听到的内容都是16进制的,具体数值的对应键盘按键还没有查到。
2.)对鼠标输入进行监听 cat /dev/input/mouse1(指定的mouse)
至于乱码的话我也不知道为什么
1 0
- USB外接输入设备(如:键盘,鼠标等)的监听
- Windows系统给树莓派装系统之Kali系统(无外接设备,如屏幕、鼠标、键盘)
- C++ 禁用USB移动存储设备而不禁用鼠标,键盘等输入设备
- android设备外接键盘实现监听事件
- NGUI -- UICamera(监听输入事件,鼠标,键盘等)
- Windows系统给树莓派装系统之Raspbian系统(无外接设备,如屏幕、鼠标、键盘)并使用ssh、vnc和xrdp(远程桌面)以及固件更新
- 在Linux下禁用键盘、鼠标、触摸板(笔记本)等输入设备
- FragmentTabHost、TabHost外接刷卡器,键盘等设备输入内容时,与EditText争抢焦点导致输入异常
- Android/Linux USB HID驱动(即USB鼠标USB键盘等驱动)相关文件
- 如何在Linux下禁用键盘、触摸板、鼠标等输入设备
- 在Linux下禁用键盘、触摸板、鼠标等输入设备
- 如何在Linux下禁用键盘、触摸板、鼠标等输入设备
- js屏蔽(禁止)键盘和鼠标功能键,如屏蔽鼠标右键,F5刷新等
- 在Ubuntu14.04上访问外接的存储设备(如U盘)中的内容
- Android检测外接USB设备的几种方法
- 基于STM32处理器的USB HID模拟鼠标键盘(2) - 实现键盘鼠标功能
- USB设备,鼠标,键盘使用CH372,CH375,进行模拟的历程
- 纪念一下坑爹的蓝牙扫描枪连接(Android外接输入设备)
- HDU - 4289 Control (最小割 MCMF)
- c#值得注意的基础知识点3.49
- 南阳oj 小猴子下落 题目63
- HTML5 Canvas实现图片擦除效果
- Memblaze发布PBlaze 4系列PCIe SSD新品 全面拥抱 NVMe
- USB外接输入设备(如:键盘,鼠标等)的监听
- Spring注解详解
- php导出Excel文件简单的方法(非PHPEXCEL)
- java动态代理详解
- markdown语法学习
- ios UIWebView 加载本地html,js,css文件的问题
- 在C51及C251中变量空间分配的方法及注意事项
- C#高级编程六十七天----LINQ提供程序
- 基于struts 的FormFile实现文件的上传功能