Android使用Usb Accessory模式与linux通信

参考:https://blog.csdn.net/lj402159806/article/details/69940628
1、概述

android端的AOA模式 是使android端作为从设备,外设硬件设备作为主设备,遵循AOA协议进行usb的通信。

2、android端
2.1 manifest配置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.gavinandre.usbaccessory">
    <uses-feature android:name="android.hardware.usb.accessory"/>
    <application
        ...
        <activity
            ...
            <intent-filter>
            	//对应的activity需要配置USB_ACCESSORY_ATTACHED广播 用于唤起activity 
            	//并获取UsbAccessory实例  这是一个大坑
                <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"/>
            </intent-filter>
            <meta-data
                android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
                android:resource="@xml/accessory_filter"/>
        </activity>
    </application>
</manifest>
2.2 accessory_filter.xml配置

在res文件夹下建立xml文件夹, 添加accessory_filter.xml文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <usb-accessory
        manufacturer="Lutixia"
        model="Demo"
        version="1.0"
        />
</resources>
2.3 具体代码
public AccessoryCommunicator(final Context context) {
        this.context = context;

        usbManager = (UsbManager) this.context.getSystemService(Context.USB_SERVICE);
        final UsbAccessory[] accessoryList = usbManager.getAccessoryList();

        if (accessoryList == null || accessoryList.length == 0) {
            onError("no accessory found");
        } else {
            openAccessory(accessoryList[0]);
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值