2017-06-26 12 views
1

私はGoogleドライブにオーディオのリストをアップロードする際に問題に直面しています。ディレクトリ内のすべてのオーディオファイルをGoogleドライブにアップロードするにはどうすればよいですか?

ディレクトリから単一のオーディオファイルをアップロードできますが、オーディオファイルのリストをアップロードしようとしても失敗しました。

これはCallLogsディレクトリ内のすべてのオーディオファイルをアップロードする方法単一のオーディオファイルのパス

final String path = new String(Environment.getExternalStorageDirectory() + "/CallLogs/Yaendi Yaendi.mp3"); 

です。

public void CreateFileOnGoogleDrive(DriveApi.DriveContentsResult result) { 

     final DriveContents driveContents = result.getDriveContents(); 

     // Perform I/O off the UI thread. 
     new Thread() { 
      @Override 
      public void run() { 
       // write content to DriveContents 


       OutputStream outputStream = driveContents.getOutputStream(); 

       final String path = new String(Environment.getExternalStorageDirectory() + "/CallLogs/Yaendi Yaendi.mp3"); 

       FileInputStream inputStream = null; 

       try { 
        inputStream = new FileInputStream(new File(path)); 
       } catch (FileNotFoundException e) { 
        showErrorDialog(); 
        e.printStackTrace(); 
       } 

       byte[] buf = new byte[1024]; 
       int bytesRead; 
       try { 
        if (inputStream != null) { 
         while ((bytesRead = inputStream.read(buf)) > 0) { 
          outputStream.write(buf, 0, bytesRead); 
         } 
        } 
       } catch (IOException e) { 
        showErrorDialog(); 
        e.printStackTrace(); 
       } 

MetadataChangeSet changeSet = new MetadataChangeSet.Builder() 
         .setTitle("callLog") 
         .setMimeType("audio/mpeg") 
         .setStarred(true).build(); 


       // create a file in root folder 
       Drive.DriveApi.getRootFolder(mGoogleApiClient) 
         .createFile(mGoogleApiClient, changeSet, driveContents).setResultCallback(fileCallback); 

      } 
     }.start(); 

     Toast.makeText(getActivity(), "Created Successfully", Toast.LENGTH_SHORT).show(); 
    } 

上記のコードでは、Googleドライブに単一のオーディオファイルをアップロードするためのものです。 すべてのファイルをGoogleドライブにアップロードする方法を教えてください。

+0

[SO post](https://stackoverflow.com/a/33520802/5995040)と[Googleドライブに複数のファイルをアップロードする](https://stackoverflow.com/a/23946030/)をご確認ください。 5995040)は、アップロードするファイルがある間にループを作成し、アップロードする必要のあるすべてのファイルをリストする変数を設定する方法について説明しています。この[post](https://stackoverflow.com/a/35005843/5995040)に記載されているように(asynctaskを介して)ファイルの作成/アップロードのバッチリクエストを試すこともできます。お役に立てれば。 –

答えて

0

AsyncTaskのdoInBackground()メソッドの内部にコードを配置します。

関連する問題