zoukankan      html  css  js  c++  java
  • usb-host与外设之间的通信(一)

    迫于需要开始一个app实现安卓手机控制外设,要学习一下usb-host这方面的知识,所以记录一下自己的学习经历。关于usb-host这一块的资料国内还是比较少的,我只能学到哪里就记录到哪里了。

    简单来说usb-host模式就是把手机当成PC来使用了,手机通过Mini-usb+OTG可以连接外部设备(我是这么简单的理解的),打开Google的安卓开发文档,关于这面方面的寥寥就一页,今天先说下识别的步骤吧,关于安卓开发的一些基础工作我就不说了,这些资料网上搜索一下还是比较全的。

    1.发现设备(添加USB HOST权限和意图(Intent)过滤器)

    <manifest ...>
        <uses-feature android:name="android.hardware.usb.host" />//添加的权限
        <uses-sdk android:minSdkVersion="12" />//sdk版本
        ...
        <application>
            <activity ...>
                ...
                <intent-filter>//过滤器
                    <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
                </intent-filter>
    
                <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
                    android:resource="@xml/device_filter" />//这个需要在res目录下自己新建立的一个文件夹(记得不太清楚了,和layout布局文件夹同一级),然后里面新建一个device_filter.xml文件
            </activity>
        </application>
    </manifest>
    2.在device.xml文件夹中需要添加的内容(依旧借鉴Google代码)

    <?xml version="1.0" encoding="utf-8"?>
    
    <resources>
        <usb-device vendor-id="1234" product-id="5678" class="255" subclass="66" protocol="1" />
    </resources>
    自己写的时候主要就是修改VID和PID的值了,查看PID和VID我的方法是用一个软件“USB端口查看器”检测的,看图:


    在device information下的Device ID后面就是我们需要的VID和PID,如我的鼠标的VID=0461 VID=4D22,但是需要注意的是,这里显示的十六进制,二在device_filter.xml文件里面需要转换成十进制的数字,否则无法识别(一开始我也在这里不知道,还好有一个师姐提醒了我一下)

    到这里基本上打包成apk安装包后,安装到手机并且连接外设后手机就会弹出“调试信息”(姑且这么叫吧),点击确定后就是运行apk程序,今天先写到这里吧,明天有时间写下获取相应的权限与设备通信这一块,对我来说也是有点吃力,毕竟以前没有学习过,为了毕业只能硬着头皮上啊

    在你的Activity中你可以获得UsbDevice对象,它代表了从意图过滤器中连接的设备,代码如下:

    UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);



  • 相关阅读:
    Sql 行转换列(列转换行), JavaScript解决思路
    c# 异步线程
    C# 读取数据库存储过程返回值 笔记
    利用UtilityLibrary.dll WeifenLuo.WinFormsUI.Docking.dll控件创建工具栏效果
    关于C#Winform线程调用窗体的使用方法以及窗体的单一显示
    通过调用API函数实现的无边框窗体的拖拽,比判断坐标更快捷
    ubuntu下安装redis
    ubuntu下安装beanstalkd
    preg_match_all 执行一个全局正则表达式匹配
    mongodb的安装和进入
  • 原文地址:https://www.cnblogs.com/sowhat4999/p/4439877.html
Copyright © 2011-2022 走看看