2016-04-24 14 views
2

私のアプリでは、設定ファイルを読み込む必要があります。その設定ファイルはローカルストレージまたはユーザーのGoogleドライブストレージ(Googleドライブアプリがインストールされている)にあります。Android:Googleドライブのファイルピッカーで選択したファイルを読み込み

以下は、最初のGoogleドライブのファイルピッカーを使用するオプションを含め、ファイルピッカーを使用するユーザーを求めて、ファイル選択を開きます:私のonActivityResult()機能で

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("file/*"); 
intent.addCategory(Intent.CATEGORY_OPENABLE); 
Intent chooserIntent = Intent.createChooser(intent, "Open file"); 
startActivityForResult(chooserIntent, REQUEST_CODE_FILE_PICKER); 

、ユーザーが選択した場合ファイルピッカーを使用してローカルファイルを選択すると、ファイルパスを取得してファイルを読み込む方法を知っています。しかし、代わりにユーザーがGoogleドライブのファイルピッカーを使用してリモートファイルを選択した場合、ユーザーが選択したファイルにどうやってアクセスしますか?

これらは私のonActivityResult()機能の裸の骨のとおりです。(??が、どこに)Googleドライブのファイルピッカーを使用して、Googleドライブのファイルを選択する場合

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == REQUEST_CODE_FILE_PICKER && resultCode == RESULT_OK) { 

     if (LOCAL FILE) { 

      Uri uri = data.getData(); 
      File myFile = new File(uri.getPath()); 
      String filePath = myFile.getAbsolutePath(); 
      // now read file store at 'filePath' from local storage (this part is fine) 

     } else if (GOOGLE DRIVE FILE) { 
      // what do I do here to retrieve the selected file? 
     } 

    } 

    super.onActivityResult(requestCode, resultCode, data); 
} 

、選択したファイルがダウンロードされるようだが、その後何も起こりません...私のアプリで使用するにはダウンロードしたファイルにどうやってアクセスしますか?

上記のonActivityResult()では、選択したファイルが実際にGoogleドライブファイルであるかどうかを確認して、それに応じて対応する方法を教えてください。つまりif (GOOGLE DRIVE FILE)のテストは何ですか?

+0

の内部でどのようにあなたがそれを解決したのでしょうか? –

+0

@NaveedAliうーん、現時点では、上記のコードで派生した 'filePath'を使用すると、googleドライブのファイルが選択されていても動作しているようです。つまり、ユーザーがGoogleドライブを参照してそこからファイルを選択できるようにするファイルピッカーを選択した場合、上記のコードは正常に機能しているようです...つまり、 'filePath'は有効です。ローカルファイルとドライブファイルで動作します。たぶんそれは、使用されるファイルピッカーに依存します...私のために働いているものは、Galaxy S6のストックピッカーです。申し訳ありませんが私はより多くの助けになることはできません。 – drmrbrewer

答えて

0

ドライブがファイルピッカーとして選択されている場合、OpenFileActivityBuilderを使用していると思います。選択したファイルのドライブIDであるEXTRA_RESPONSE_DRIVE_IDが返されます。その後、上記ファイルを開くにはDriveFile.openに電話するだけです。これは、ドライブファイルピッカーを選択したかどうかを確認するフラグです。

ファイルがダウンロードされた場合、私は答えることができないが、それのための私の最高の推測では、そのあなたのdata/(あなたが最も可能性の高いへのアクセスを持っていない)アプリケーション

関連する問題