24

USBデバイスと通信する必要があるAndroidアプリケーションを開発しています。アプリで標準のGoogleAPIを使用しようとしましたが、デバイスのリストが常に空になっています。

GoogleAPIでUSBデバイス情報を使用する場合も同じです。グーグル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です

日食のログ:

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からの結果はありません。

デバイスのPrtocolは、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

同じエラーが発生します:「そのようなファイルまたはディレクトリはありません」

4

4 に答える 4

43

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が機能するはずです。

android4を搭載したCUBEU30GTでテスト済み。

于 2012-08-16T17:43:53.247 に答える
6

素晴らしい!これは、Android4.0.4を実行している私のEnvizenV700NAで機能しました。

マイナータイプミス: <feature name="android.hardware.usb.host">

する必要があります: <feature name="android.hardware.usb.host"/>

手順:

  1. adb pull /system/etc/permissions/tablet_core_hardware.xml
  2. そのファイルを更新し、Greg-qで指定されているとおりにandroid.hardware.usb.host.xmlを作成します。
  3. adb push android.hardware.usb.host.xml / system / etc / permits
  4. adb push Tablet_core_hardware.xml / system / etc / permits
  5. リブート。
于 2013-06-11T03:19:06.317 に答える
2

micromax A120キャンバス2電話(キットカット4.4.2)でチャームのように機能しました。これで、Arduinoを制御できるようになりました。私はbusyboxツールを使用してすべてのコマンドライン作業を行いました(そうでない場合、chmodは機能しません)。私の手順(おそらくいくつかは必要ありませんでした):

(0) Windows 8コンピューターにPDAnetドライバー(http://pdanet.co/a/ )をインストールします。(1)http://www.mgyun.com/m/enでVroot(現在はiRootと呼ばれています)を使用して電話をルート化します。非常に単純ですが、唯一の落とし穴は、suの許可/拒否ページが部分的に中国語であり、大したことではないということです。(2)busyboxとjackpalのAndroid-Terminal-Emulatorをインストールします(githubhttps://github.com/jackpal/Android-Terminal-Emulatorまたはplaystore 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が機能するはずです。

于 2015-03-25T01:26:04.423 に答える
1

MK809、Android 4.1 Jelly Beanでadbを使用しましたが、コマンドは次のとおりです。

adb remount /../../file.xml rw adb push .. ..

通常のコマンドでi'vent権限があり、ファイルは読み取り専用です

私の悪い英語でごめんなさい:P

于 2013-11-23T16:31:30.460 に答える