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


所有评论(0)