2017-05-16 8 views
0

sample codeからドライブのAppFolderにテキストファイルをアップロードする方法はわかりますが、ドキュメントの場合はJSONに拡張する方法が明確ではありませんすべて。アンドロイド用GoogleドライブAPIを使用してJSONファイルをAndroidでアップロードする

final private ResultCallback<DriveContentsResult> driveContentsCallback = new 
     ResultCallback<DriveContentsResult>() { 
    @Override 
    public void onResult(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() { 
       // write content to DriveContents 
       OutputStream outputStream = driveContents.getOutputStream(); 
       Writer writer = new OutputStreamWriter(outputStream); 
       try { 
        writer.write("Hello World!"); 
        writer.close(); 
       } catch (IOException e) { 
        Log.e(TAG, e.getMessage()); 
       } 

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

       // create a file on root folder 
       Drive.DriveApi.getRootFolder(getGoogleApiClient()) 
         .createFile(getGoogleApiClient(), changeSet, driveContents) 
         .setResultCallback(fileCallback); 
      } 
     }.start(); 
    } 
}; 

私は、.setMimeType()outputStreamを変更する必要がなく、正確に何に:ここで

は、テキストファイルをアップロードするためのコードですか?

String json = gson.toJson(activeSubs); //activeSubs being an ArrayList 

すべてのヘルプは高く評価され、次のよう

私のJSON文字列が宣言されています。

+0

はなぜ? Jsonテキストは単なるテキストです。あなたのコードにはファイル名が見当たりません。 – greenapps

+0

これはgoogleサンプルのサンプルコードです。これはjsonもアップロードする正しい方法ですか?何か他のことをする必要はありませんか? – Daniele

+0

コードにファイル名が表示されません。さらに、試してみるだけで自分の質問に答えることができます。 – greenapps

答えて

1

これは私のためにそれを修正:

String json = gson.tojson(activeSubs); 

final private ResultCallback<DriveContentsResult> driveContentsCallback = new 
     ResultCallback<DriveContentsResult>() { 
    @Override 
    public void onResult(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() { 
       // write content to DriveContents 
       OutputStream outputStream = driveContents.getOutputStream(); 
       Writer writer = new OutputStreamWriter(outputStream); 
       try { 
        writer.write(json); 
        writer.close(); 
       } catch (IOException e) { 
        Log.e(TAG, e.getMessage()); 
       } 

       MetadataChangeSet changeSet = new MetadataChangeSet.Builder() 
         .setTitle("New file.txt") 
         .setMimeType("json") 
         .setStarred(true).build(); 

       // create a file on root folder 
       Drive.DriveApi.getRootFolder(getGoogleApiClient()) 
         .createFile(getGoogleApiClient(), changeSet, driveContents) 
         .setResultCallback(fileCallback); 
      } 
     }.start(); 
    } 
}; 
関連する問題