15

誰かが私を助けることができれば、私は本当に素晴らしいでしょう. ファイルにアクセスしてイメージビューに表示しようとしているアプリを構築しています。

ボタンがあり、それに onClickListener をアタッチします

iButton.setOnClickListener(new View.OnClickListener() {   
@Override
public void onClick(View view) {
   Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
   photoPickerIntent.setType("image/*");
   startActivityForResult(Intent.createChooser(photoPickerIntent, "Select Picture"), 1);
   }
 });

このインテントには、ギャラリー、Dropbox、Google ドライブの 3 つのオプションがあります。

ギャラリーの場合、ファイル lis this にアクセスしてイメージビューに表示できます

Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null,   null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
imageHolder.setImageBitmap(BitmapFactory.decodeFile(picturePath));

Dropboxの場合、私はこのようにします

imageHolder.setImageBitmap(BitmapFactory.decodeFile(selectedImage.getPath()));

ただし、Googleドライブでそれを行う方法がわからないため、ギャラリーのように実行しようとしましたが、次のエラーが表示されます

E/BitmapFactory: ストリームをデコードできません: java.io.FileNotFoundException: /: オープンに失敗しました: EISDIR (ディレクトリです)

どんな助けでも大歓迎です。

4

4 に答える 4

2

ええ、これは頭を壁にぶつけるようなものかもしれません。ドライブ側の APIの特異性により、ACTION_GET_CONTENT を使用すると問題が発生する場合があります。そのコンテキストメニューから起動するためのハックを投げ込むことになり、標準の統合コードを使用しました。幸運を!

于 2013-06-25T02:24:26.873 に答える
1

ドライブから取得したファイルを開きたい場合は、Google ドライブ アプリのリソースを使用して簡単に開くことができます。まずはプレイマーケットからGoogleドライブアプリをインストール Googleドライブをインストール

その後、このコードを使用してファイルを開きます。

   FileID=file.getId();//it is your file ID which you want to display

  String url = "https://docs.google.com/file/d/"+FileID;
  Intent i = new Intent(Intent.ACTION_VIEW);
  i.setData(Uri.parse(url));
   startActivity(i);

あらゆるタイプのファイル(画像、pdf、doc、txtなど)を表示します

于 2014-04-08T17:25:45.250 に答える
1

現在、Google ドライブで ACTION_GET_CONTENT を使用することはできません。古いバージョンでは、Google によって誤ってサポートされていました。しかし、Drive の最新バージョン (1.1.470.15) ではインテントが無効になっており、ACTION_GET_CONTENT は Drive をオプションとしてスローしません。

問題の議論の下を読んでください。
https://productforums.google.com/forum/#!topic/drive/siSKHXdE-ao/discussion

于 2013-06-26T12:05:54.830 に答える