2013-04-05 26 views
5

現在、USBデバイス上のxmlファイルにアクセスするアプリケーションを開発しようとしています。 Android USBホストに関するGoogleのドキュメントを読んだことがあります。 今私は、私のUSBデバイスを検出(PID/VIDのように)その仕様を発見、しかし、私は、USBデバイスのファイルにアクセスすることはできません:(Androidホスト:マスストレージUSBデバイスとの接続

ここですることができ、デバイスを探している活動の私のコードです:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_visu); 


    affichage = (TextView) findViewById(R.id.afficher); 
    context = VisuActivity.this.getApplicationContext(); 
    UsbManager manager = (UsbManager) context.getSystemService(Context.USB_SERVICE); 
    HashMap<String, UsbDevice> deviceList = manager.getDeviceList(); 

    Iterator<UsbDevice> deviceIterator = deviceList.values().iterator(); 

    if(deviceList.size()==1){ 
     while(deviceIterator.hasNext()){ 
      device = deviceIterator.next(); 

     } 

     UsbInterface mUsbInterface = device.getInterface(0); 
     UsbEndpoint endpoint = mUsbInterface.getEndpoint(0); 

     UsbDeviceConnection connection = manager.openDevice(device); 

    } 
} 
    /* What To Do Now ???? */ 

は、私は、インターネット上でいくつかの例を見つけることを試みたが、私は今、失われています!:(

誰でもUSBデバイス上のファイルを読み込みのために行う(そして最終的に書き込み)する方法を知っている? Iを追跡する大容量記憶装置のプロトコルがあると聞いたことがありますが、見つけたり、理解したりしていません。

+0

ここでは間違っているかもしれません。しかし、私は、カーネルがあなたのシステムのどこかのマスストレージデバイスを '/ mnt /'の中にマウントすると仮定して、通常の 'File'クラスでそこにあるものにアクセスできます。 – Budius

+0

はい、 '/ dev/bus/usb/002'というUsbDeviceオブジェクトによって記述されたパスにあっても、'/mnt/'ファイルには何も存在しません!または単に '* .o'ファイル – Manu

+0

こんにちは@Manu、あなたは解決策を見つけましたか?はいの場合はお知らせください。私は同じ問題を抱えています。 –

答えて

-1

USBファイルがマウントされていることは表示されませんが、いくつかの大容量ストレージがマウントされて、あなたが通知されますが、私はUSB接続のレシーバを取得した後、あなたはかなり確信していると思いインテントフィルタにフィルタ上記

<intent-filter> 
       <action android:name="android.intent.action.MEDIA_MOUNTED" /> 
       <action android:name="android.intent.action.MEDIA_UNMOUNTED" /> 

       <data android:scheme="file" /> 
</intent-filter> 

を聞きますあなたは「/秒ですべてのファイルを一覧表示することができるように取り付けられたデバイスは、標準のUSBマスストレージが搭載されているときに、あなたがUSB用

public void onReceive(Context context, Intent intent) { 
    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
     File file=new File("/storage/usbdisk"); 
       File[] listFiles = file.listFiles(); 
       for (File f : listFiles){ 
        f.getAbsoluteFilePath() 
        //you can do all file processing part here 
       } 
    } 
} 

ファイルパスを通知されますUSBマスストレージ

されていないですtorage " ファイル名に" usb "が含まれていて、私の場合" usb/storage/usbdisk "の場合はusbです。