1

同じアプリで既に作成したフォルダにアクセスできます。私は 'com.google.android.gms:play-services-drive:9.0.0'ライブラリを使用しており、google drive sample on githubを参照しています。サンプルを使用してCreateFolderInFolderActivity.java私は既存のフォルダ内にフォルダを作成することができます。フォルダを作成する代わりに、既存のフォルダ内にファイルを作成する必要があります。android google drive sdkを使用してGoogleドライブのフォルダにファイルをアップロードする方法

public class CreateFileInsideFolderActivity extends BaseDemoActivity { 

    private static final String TAG = "CreateFileActivity"; 

    @Override 
    public void onConnected(Bundle connectionHint) { 
     super.onConnected(connectionHint); 

     Drive.DriveApi 
       .fetchDriveId(getGoogleApiClient(), "0B_cMuo4-XwcAZ3IzSG1jajFlWk0") 
       .setResultCallback(idCallback); 
    } 

    final ResultCallback<DriveApi.DriveIdResult> idCallback = new ResultCallback<DriveApi.DriveIdResult>() { 
     @Override 
     public void onResult(DriveApi.DriveIdResult result) { 

      if (!result.getStatus().isSuccess()) { 
       showMessage("Cannot find DriveId. Are you authorized to view this file?"); 
       return; 
      } 

      DriveId driveId = result.getDriveId(); 

      //showMessage("driveid" + driveId.getResourceId()); 

      final DriveFolder folder = driveId.asDriveFolder(); 

      // 
      // How to upload a file to this folder 
      // 





} 
+0

あなたが持っている問題についての詳細を提供する必要があります – pinoyyid

+0

詳細を追加 –

答えて

2

おかげで、私は私がここで共有していますwiki.workassisから例を源泉

を@pinoyyid。用http://wiki.workassis.com/google-drive-android-api-upload-file-to-existing-folder/

を:誰もがよりよい解決策を持っている場合、私は画像のURL

を参照してください取得するためのデフォルトのファイルピッカーを使用しています私と一緒に結果のコールバック

final private ResultCallback<DriveApi.DriveContentsResult> driveContentsCallback = new ResultCallback<DriveApi.DriveContentsResult>() { 

    @Override 
    public void onResult(DriveApi.DriveContentsResult result) { 

     if (!result.getStatus().isSuccess()) { 
      showMessage("Error while trying to create new file contents"); 
      return; 
     } 

     final DriveContents driveContents = result.getDriveContents(); 

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

       OutputStream outputStream = driveContents.getOutputStream(); 
       try { 
        InputStream inputStream = getContentResolver().openInputStream(imageUri); 

        if (inputStream != null) { 
         byte[] data = new byte[1024]; 
         while (inputStream.read(data) != -1) { 
          outputStream.write(data); 
         } 
         inputStream.close(); 
        } 

        outputStream.close(); 
       } catch (IOException e) { 
        Log.e(TAG, e.getMessage()); 
       } 

       MetadataChangeSet changeSet = new MetadataChangeSet.Builder() 
         .setTitle("New file") 
         .setMimeType("image/jpg") 
         .setStarred(true).build(); 


       DriveApi.DriveIdResult exFolderResult = Drive.DriveApi 
         .fetchDriveId(getGoogleApiClient(), ExistingFolderID) 
         .await(); 

       if (!exFolderResult.getStatus().isSuccess()) { 
        showMessage("Cannot find DriveId. Are you authorized to view this file?"); 
        return; 
       } 

       DriveId driveId = exFolderResult.getDriveId(); 
       //showMessage("driveid" + driveId.getResourceId()); 
       final DriveFolder folder = driveId.asDriveFolder(); 


       // create a file on root folder 
       folder.createFile(getGoogleApiClient(), changeSet, driveContents) 
         .setResultCallback(fileCallback); 

      } 
     }.start(); 

    } 
}; 

@Override 
public void onConnected(Bundle connectionHint) { 
    super.onConnected(connectionHint); 

    Drive.DriveApi.newDriveContents(getGoogleApiClient()).setResultCallback(driveContentsCallback); 
} 

を共有してくださいファイルピッカー:http://wiki.workassis.com/android-create-a-file-picker/

関連する問題