参考: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]);
        }
    }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐