如何同时为两个应用程序使用同一个 USB 配件?
How to use the same Usb accessory for two apps at same time?
我有一个使用
的应用程序
<uses-feature
android:name="android.hardware.usb.accessory"
android:required="true" />
我希望该 USB 与前台的 App1 运行 和后台的 App2 运行 通信。 App2 运行 在我的后台。前台的App1 运行 是第三方的。我将无法访问 App1。
当我尝试这样做时,每当一个应用程序获得访问权限时,另一个应用程序就会失去连接。有没有办法让两个应用程序同时与 USB 通信,
试试这个,
创建一个my_accessory_filter.xml
res/xml/ 目录中的资源文件,其中包含一个用于识别您的配件的元素。
<resources>
<usb-accessory model="CoolAccessory" manufacturer="My App Company" version="1.0"/>
</resources>
现在,当您将配件连接到设备时,android 将发送打开相应应用程序的意图。最好的部分是,多个应用程序可以响应给定的意图,因此多个应用程序可以选择响应同一配件。
不要忘记在清单中这样调用您的 my_accessory_filter.xml 资源文件:
<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="@xml/my_accessory_filter" />
希望对您有所帮助!!
我很确定这行不通。让我们假设系统允许您这样做(根据您的测试显然不是这种情况)。与 USB 配件通信的方式是 ParcelFileDescriptor
.
要阅读它,您需要执行以下操作:
val buffer = ByteArray(16384)
val inStream = FileInputStream(fileDescriptor)
inStream.read(buffer)
如果您有两个应用同时读取,则每个应用都会读取部分流。例如,如果流是“A - B - C - D - E”,则第一个应用程序可能会读取“A - B - E”,第二个应用程序可能会读取“C - D”。但这绝对不是你想要的。
我有一个使用
的应用程序<uses-feature
android:name="android.hardware.usb.accessory"
android:required="true" />
我希望该 USB 与前台的 App1 运行 和后台的 App2 运行 通信。 App2 运行 在我的后台。前台的App1 运行 是第三方的。我将无法访问 App1。
当我尝试这样做时,每当一个应用程序获得访问权限时,另一个应用程序就会失去连接。有没有办法让两个应用程序同时与 USB 通信,
试试这个,
创建一个my_accessory_filter.xml res/xml/ 目录中的资源文件,其中包含一个用于识别您的配件的元素。
<resources>
<usb-accessory model="CoolAccessory" manufacturer="My App Company" version="1.0"/>
</resources>
现在,当您将配件连接到设备时,android 将发送打开相应应用程序的意图。最好的部分是,多个应用程序可以响应给定的意图,因此多个应用程序可以选择响应同一配件。
不要忘记在清单中这样调用您的 my_accessory_filter.xml 资源文件:
<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="@xml/my_accessory_filter" />
希望对您有所帮助!!
我很确定这行不通。让我们假设系统允许您这样做(根据您的测试显然不是这种情况)。与 USB 配件通信的方式是 ParcelFileDescriptor
.
要阅读它,您需要执行以下操作:
val buffer = ByteArray(16384)
val inStream = FileInputStream(fileDescriptor)
inStream.read(buffer)
如果您有两个应用同时读取,则每个应用都会读取部分流。例如,如果流是“A - B - C - D - E”,则第一个应用程序可能会读取“A - B - E”,第二个应用程序可能会读取“C - D”。但这绝对不是你想要的。