11

Android デバイスがホストであるアプリケーションを作成しています。ユーザーが USB ドライブを Android デバイスに接続すると、アプリケーションが USB ドライブにいくつかのテキスト ファイルを書き込みます。テキスト ファイルのパスはUSB_DRIVE/Data/APP_NAME/myfile.txt、USB ドライブ内のようになります。

アプリケーションは、特定の場所からテキスト ファイルを読み取ることもできる必要がありUSB_DRIVE/Data/APP_NAMEます。フォルダー内のすべてのファイルを一覧表示でき、ユーザーがファイルを選択できる場合はさらに優れています。

公式のAndroid開発サイトでコードを見つけました

UsbInterface intf = device.getInterface(0);
UsbEndpoint endpoint = intf.getEndpoint(0);
UsbDeviceConnection connection = mUsbManager.openDevice(device); 
connection.claimInterface(intf, forceClaim);
connection.bulkTransfer(endpoint, bytes, bytes.length, TIMEOUT);

バイト配列を使用して USB_DRIVE の特定のパスにファイルを書き込む方法がわかりません。

/storage/usb0/参考までに: 私のデバイスにはまたはのようなパスはありません/storage/usbdisk0/。内部/storage/では、ファイル構造は次のようになります。

  • 保管所
    • エミュレートされた
      • 0
        • SD_CARD コンテンツ
      • 遺産
        • SD_CARD コンテンツ
    • sdcard0 - SD_CARD コンテンツ

私のテスト デバイスは Nexus 10 です。

ES ファイル エクスプローラー アプリを試してみましたが、このアプリを使用すると、SD_CARD から USB_DRIVE にファイルを正常に移動/コピーできます。つまり、OTG は正常に動作しており、アプリから USB_DRIVE へのファイルの読み取り/書き込みは実行可能です。ファイルを転送した後、ES はファイルのパスをusb://1002/myfile.txt.

ESインテントまたは何かを使用してファイルを書き込み/移動/読み取りできれば、それも機能します。

または、機能を達成するのに役立つ FTP ソリューションがあれば、それを選びます。

ありがとうございました。

4

0 に答える 0