我的最终目标是让我的 Android 平板电脑上的应用程序通过 USB 连接到我桌面上的应用程序。我不想要求我的用户启用 USB 调试 - 我已经看到了几种用于处理数据传输的实现( 1、2、3 ...) ,但这对我的用例来说并不令人满意。adb
我遵循了USB 附件指南,并尝试列出具有以下内容的设备:
public void onResume() {
super.onResume();
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
log( "Devices:" + manager.getDeviceList().toString() );
...
但设备列表始终为空。manager.getAccessoryList()
返回null
。
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.usb" android:versionCode="1" android:versionName="1.0">
<uses-sdk
android:minSdkVersion="12" android:targetSdkVersion="17" />
<uses-feature
android:name="android.hardware.usb.accessory" android:required="true" />
...
后来我在设备上尝试lsusb
了终端仿真器和cron
'd 脚本。它显示没有连接设备。(我尝试禁用 USB 调试以防万一——仍然没有。)
我是否缺少列出 USB 设备的一些权限,或者我是否需要配置我的桌面以允许 UsbAccessory 连接或什么?如果是这样,为什么会阻止lsusb
显示它所连接的计算机?