1

私のアプリでは、カメラとギャラリーから画像を選択してImageViewに読み込むことができます。Googleドライブからファイル名を取得URI

私は、画像を選択するために、関連するアプリケーションを開くには、次のコードを使用しています:

Intent intent = new Intent(); 
     intent.setType("image/*"); 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
     intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 

問題は、Googleドライブです。ユーザーがGoogleドライブから画像を選択した場合、私はこのようなURIを取得しています:内容://com.google.android.apps.docs.storage.legacy/enc%3DHxtpLaMr66OMOzDOKTRZ-5ed7q7Szj7F7nC0IlxBnV8hx2P1%0A

私が生成することができていますビットマップですが、ファイル名を取得できません。

InputStream input = context.getContentResolver().openInputStream(uri); 
       Bitmap bitmap = BitmapFactory 
         .decodeStream(input); 

私が選択したファイル名を表示する必要があります。

GoogleドライブのURIからイメージ名を抽出するのを手伝ってください。

最初の方法は、その名前のファイルを自分で、携帯電話に別のURIに保存します。

答えて

0

実は、私はあなたに二つの方法をお勧めすることができます。

2番目の方法では、uri自体からファイル名を取得できます。以下の回答を参照してください:

Link

3

は、私は、ファイル名を取得するビットマップを生成することができますができないのですが

ファイル名もにありますありません。すべてのバイト列にファイル名があるわけではありません。たとえば、この回答にはファイル名はありません。

GoogleドライブのURIからイメージ名を抽出するのを手伝ってください。

これは厳密には可能ではありません。

ACTION_OPEN_DOCUMENTに切り替えることができます。次に、にUriをラップします。次にDocumentFilegetName()と電話してください。これは、ユーザーが認識すべき「表示名」となります。 それでもファイル名はではありません。

ACTION_GET_CONTENTから表示されるUriの表示名を取得する手段がGoogleドライブAPIにある可能性は排除できませんが、それは私を驚かせるでしょう。 UriからACTION_GET_CONTENTまでは、IntentCATEGORY_OPENABLEを追加すると、DocumentFile —と一緒に動作する可能性があります。

+0

KitkatにチェックインされているDocumentFileオブジェクトが作成されていますが、getName()メソッドはnullを返しています。表示名kitkat以下はどうすれば入手できますか? –

+0

- 上記のコメントを確認してください –

+0

@RohanPatel:これは 'DocumentFile'の制限です。私は[このライブラリではより良いバージョンです](https://github.com/commonsguy/cwac-document)です。あるいは、 'ContentResolver'を使って' OpenableColumns'を 'query()'することもできます。 – CommonsWare

関連する問題