0

私たちのアプリでは、他のファイルストレージアプリからファイルを取得しようとしています。たとえば、アプリを開き、アプリの選択を開始し、ドロップボックスを選択し、ファイルを選択し、アプリでファイルを開きます。私は他のアプリを試してみて、起動するには、この意図を設定している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が返されるようにするには、何を設定する必要がありますか?

答えて

1

Android KitKat(API 19)以降のデバイスでは、アプリケーションでStorage Access Frameworkを使用し、DocumentsProviderを構築できます。そのような場合、ACTION_GET_CONTENTインテントのstartActivity()を呼び出すと、システムUIはUIを提供しています。アプリは独自のUIを実装する必要はなく、GET_CONTENTを直接処理するアクティビティはありません。

システムUIだけGET_CONTENT活動を提供ストレージアクセスFrameworkとレガシーアプリケーションを使用して、両方のアプリケーションへのアクセスを提供するとして、あなたはは、独自のアプリチューを持っているだけではなく、直接ACTION_GET_CONTENT意図を実行し、それ'LLべきではありませんすべてのアプリで作業します(フラグが設定されている場合は、1つのアプリからではなく複数のDocumentsProviderからファイルを選択できます)。

+0

私はStorage Access Frameworkを見て、やっていることとうまくいくように思えますが、API 14+をサポートしていることを明確にし、短期間でドキュメントにアクセスする必要があります。 'ACTION_GET_CONENT'はまだ14+のために使うべきものです。だから、私の質問は、Googleドライブは 'ACTION_GET_CONTENT'をサポートしていると思いますか?私が見たすべての答えはいいえ、しかし彼らは数年前です。 –

+0

はい、ファイルに一時的にアクセスしたい場合は、 'ACTION_GET_CONTENT'を使うのが最も確実です。あなたはあまりにも多くのことをやっているだけです。 - 'ACTION_GET_CONTENT'はユーザーが任意の' DocumentsProvider'から 'GET_CONTENT' **と**をフィルタリングするアクティビティを持つ*任意のアプリから選ぶことを可能にするUIをプルアップします。あなたが作成した 'Intent'を起動すると、それらの全てがリストに表示されます。必要なパーミッションのため、そのシステムUIだけが 'DocumentsProviders'から読み込むことができるので、アプリ内で同じリストを構築することはできません。 – ianhanniballake

関連する問題