USBデバイスと通信する必要があるAndroidアプリケーションを開発しています。アプリで標準のgoogle APIを使用しようとしましたが、デバイスのリストは常に空です。
Google APIでUSBデバイス情報を使用する場合も同じです。 Google APIで検索されたデバイスのリストは空です。
lsusbの結果は次のとおりです。
Bus 001 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 002 Device 002: ID 2226:0014
私のデバイスは2226:0014です
eclipseのログ:
I/USB3G(92): event { 'add', '/devices/platform/sw-ehci.1/usb2/2-1', 'usb', '', 189, 133 }
I/USB3G(92): path : '/sys/devices/platform/sw-ehci.1/usb2/2-1'
I/USB3G(92): VID :size 5,vid_path '/sys/devices/platform/sw-ehci.1/usb2/2-1/idVendor',VID '2226
I/USB3G(92): '.
I/USB3G(92): PID :size 5,Pid_path '/sys/devices/platform/sw-ehci.1/usb2/2-1/idProduct',PID '0014
I/USB3G(92): '.
I/USB3G(92): cmd=/system/etc/usb_modeswitch.sh /system/etc/usb_modeswitch.d/2226_0014 &,
I/USB3G(92): excute ret : 0,err:No such file or directory
RS232アダプタ、Bluetoothドングルなどのデバイスを接続しても何も起こりません。APIとlsusbからの結果はありません。
デバイスのプロトコルは、ezusbライブラリに基づいています。 Android v .: 4.0.3カーネルv .: 3.0.8ファームウェアビルド:crane_evb-eng 4.0.3 IMLK74k 20120330
APIを介して非表示のUSBデバイスにアクセスする方法はありますか?または、ドライバーを記述してファームウェアにパッチを適用することにより、このデバイスのサポートを実装する必要がありますか?
更新:* system/etc/usb_modeswitch.d/*に名前2226_0014を含む情報ファイルを作成しても
DefaultVendor= 0x2226
DefaultProduct=0x0014
TargetVendor= 0x2226
TargetProductList="0014"
MessageEndpoint="0x00"
NeedResponse=1
CheckSuccess=20
私は同じエラーを受け取ります:「そのようなファイルまたはディレクトリはありません」
USBホストAPIサポートを有効にするには、次の名前のファイルを追加する必要があります
Android.hardware.usb.Host.xmlおよび次の行が含まれます。
<permissions>
<feature name="Android.hardware.usb.Host"/>
</permissions>
フォルダーに
/system/etc/permissions
そのフォルダ内のファイルを見つけます
handheld_core_hardware.xml or tablet_core_hardware.xml
そして追加
<feature name="Android.hardware.usb.Host" />
<permissions>
セクション。
デバイスを再起動します。 USBホストAPIは動作するはずです。
CUBE U30GTでAndroid 4。
優れた!これは、Android 4.0.4を実行しているEnvizen V700NAで機能しました。
マイナータイプミス:<feature name="Android.hardware.usb.Host">
<feature name="Android.hardware.usb.Host"/>
手順:
Micromax A120 canvas 2電話(KitKat 4.4.2)でチャームのように機能しました。今、私は私のArduinoを制御することができます!私はbusyboxツールを使用してすべてのコマンドライン作業を行いました(そうでなければchmodは機能しません)。私の手順(おそらくいくつかは必要ありませんでした):
(0)Windows 8コンピューターにPDAnetドライバー( http://pdanet.co/a/ )をインストールします。 (1)Vroot(現在はiRoot)を使用して http://www.mgyun.com/m/en で電話のルートを設定します。非常に簡単なのは、su grant/denyページが部分的に中国語であり、大したことではないことです。 (2)busyboxとjackpalのAndroid-Terminal-Emulatorをインストールします(github https://github.com/jackpal/Android-Terminal-Emulator またはPlay Store https:// play。 google.com/store/apps/details?id=jackpal.androidterm&hl=en )
(3)ターミナルウィンドウを開き、スーパーユーザーになります。
# su
(4)ファイルシステムは読み取り専用であるため、再マウントする必要があります。
# mount -o rw,remount -t yaffs2 /
または
# mount -o rw,remount -t rootfs /
または
# mount -o rw,remount -t rootfs rootfs /system
http://www.pocketmagic.net/write-on-the-Android-read-only-file-system/ も参照してください。 Android 2.3:読み取り専用ファイルシステムがスタックしています また、 https://ckirbach.wordpress.com/2012/11/27/how-to-remount-system-as-read-write-in-Android/
(5)default.propを読み書き可能にします:
chmod 666 /default.prop
(6)/default.propを編集し、次の変更を行います。
ro.secure=0
ro.debuggable=1
persist.service.adb.enable=1
https://Android.stackexchange.com/questions/28653/obtaining-root-by-modifying-default-propro-secure または http://bclary.com/blog/ 2014/04/14/splitting-and-packing-Android-boot-images /
最後に、上記の答えが示すように、完全を期すために( https://stackoverflow.com/a/11992683/979369 ):
(7)USBホストAPIサポートを有効にするには、次の行を含むAndroid.hardware.usb.Host.xmlという名前のファイルを追加する必要があります。
<permissions>
<feature name="Android.hardware.usb.Host"/>
</permissions>
フォルダーに
/system/etc/permissions
そのフォルダ内にあるという名前のファイルを見つける
handheld_core_hardware.xml or tablet_core_hardware.xml
そして追加
<feature name="Android.hardware.usb.Host" />
セクションに。
(8)デバイスを再起動します。 USBホストAPIは動作するはずです。
mK809でadbを使用しました、Android 4.1 Jelly bean、およびコマンドは次のとおりです。
adb remount /../../file.xml rw adb Push ...
通常のコマンドでi'ventパーミッションがあり、ファイルは読み取り専用です
私の悪い英語でごめんなさい:P