2016-07-18 19 views
0

Googleドライブのファイルピッカーを設定して、ユーザーが選択したファイルの内容を読み取ることができました。しかし、ユーザーが選択したGoogleドキュメントファイルをテキストファイルとしてダウンロードしてからコンテンツを読むことができるようにしたいと思いますが、Drive Rest APIを使用してこれを行うためのソリューションは見つけられませんでしたAndroid用GoogleドライブAPI私にこれを可能にする解決策はありますか?現在のところ、ファイルをダウンロードするコードは次のとおりです。Android用GoogleドライブAPIを使用してGoogleドキュメントドキュメントをテキストファイルとしてダウンロードする

final private class RetrieveDriveFileContentsAsyncTask 
     extends ApiClientAsyncTask<DriveId, Boolean, String> { 

    public RetrieveDriveFileContentsAsyncTask(Context context) { 
     super(context); 
    } 

    @Override 
    protected String doInBackgroundConnected(DriveId... params) throws IOException { 
     String contents = null; 
     DriveId driveId=params[0]; 
     DriveFile file = driveId.asDriveFile(); 
     DriveApi.DriveContentsResult driveContentsResult = 
       file.open(getGoogleApiClient(), DriveFile.MODE_READ_ONLY, null).await(); 
     if (!driveContentsResult.getStatus().isSuccess()) { 
      return null; 
     } 
     DriveContents driveContents = driveContentsResult.getDriveContents(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(driveContents.getInputStream())); 
     StringBuilder builder = new StringBuilder(); 
     String line; 
     while ((line = reader.readLine()) != null) { 
      builder.append(line); 
      builder.append('\n'); 
     } 
     contents = builder.toString(); 
     driveContents.discard(getGoogleApiClient()); 
     return contents; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     if (result == null) { 
      return; 
     } 
     Intent intent=new Intent(getContext(),NotesActivity.class); 
     intent.putExtra("setTextTo",result); 
     startActivity(intent); 
    } 
} 
+0

Android APIはREST APIのラッパーであるため、Fileオブジェクトを取得できますか?そして、あなたは文書を開いてその内容を文字列に読むことができますか? –

+0

Googleドキュメントで作成されたファイル以外のファイルの文字列にコンテンツを読み込むことができます。また、私は同じファイルオブジェクトを取得することはできないと思う。 – Daniel

+0

さて、あなたが内容を読むことができれば、それをテキストファイルに書くことができます。だから問題は何ですか? –

答えて

2

いいえGoogleドライブAndroid APIでは変換機能が提供されていません。それにはREST APIを使用する必要があります。

+0

残りのAPIにはAndroid用GoogleドライブAPIのファイルピッカーの代わりに使用できるファイルピッカーが含まれていますか? – Daniel

+1

いいえ、REST APIによって提供されるアンドロイドファイルピッカーはありません(ウェブファイルピッカーがあります)。あなたの状況では、ドライブアンドロイドAPIを使用してファイルピッカーを表示するのが最善の方法だと思います。ファイルが選択されると、選択されたファイル(returnedDriveId.getResourceId())のresourceIdを取得し、REST API要求でその変換などを実行することができます。 – Shailendra

+0

@Shailendra同じことをやろうとしています。ただし、ドライブサービスインスタンスを作成するには、GoogleドライブAndroid APIで取得できないように見えるアカウント名を設定する必要があります – osayilgan

関連する問題