私たちのアプリでは、他のファイルストレージアプリからファイルを取得しようとしています。たとえば、アプリを開き、アプリの選択を開始し、ドロップボックスを選択し、ファイルを選択し、アプリでファイルを開きます。私は他のアプリを試してみて、起動するには、この意図を設定しているqueryIntentActivities()で表示するGoogleドライブの取得方法
:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PackageManager packageManager = getPackageManager();
List activities = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
重要な部分はqueryIntentActivities
で、私たちはこれが私達のユーザーが選択できるアプリ内容を表示に戻りアプリケーションのリストを使用しています。 dropboxやMicrosoft OneDriveのようなアプリは問題なく表示されますが、Googleドライブは決して表示されません。
GoogleドライブにqueryIntentActivities
が返されるようにするには、何を設定する必要がありますか?
私はStorage Access Frameworkを見て、やっていることとうまくいくように思えますが、API 14+をサポートしていることを明確にし、短期間でドキュメントにアクセスする必要があります。 'ACTION_GET_CONENT'はまだ14+のために使うべきものです。だから、私の質問は、Googleドライブは 'ACTION_GET_CONTENT'をサポートしていると思いますか?私が見たすべての答えはいいえ、しかし彼らは数年前です。 –
はい、ファイルに一時的にアクセスしたい場合は、 'ACTION_GET_CONTENT'を使うのが最も確実です。あなたはあまりにも多くのことをやっているだけです。 - 'ACTION_GET_CONTENT'はユーザーが任意の' DocumentsProvider'から 'GET_CONTENT' **と**をフィルタリングするアクティビティを持つ*任意のアプリから選ぶことを可能にするUIをプルアップします。あなたが作成した 'Intent'を起動すると、それらの全てがリストに表示されます。必要なパーミッションのため、そのシステムUIだけが 'DocumentsProviders'から読み込むことができるので、アプリ内で同じリストを構築することはできません。 – ianhanniballake