私の最終的な目標は、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
もしそうなら、それが接続されているコンピュータを表示できないのはなぜですか?