12

このインテントを使用して、ユーザーが写真を選択できるようにします。

Intent intent = new Intent(Intent.ACTION_PICK, 
                           MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(intent, INTENT_SELECT_PHOTO);

そしてでonActivityResult

Uri uri = data.getData();
InputStream inputStream = getContentResolver().openInputStream(uri);

FileNotFoundExceptionただし、一部の Android デバイスではスローされます。

の値uri:

content://media/external/images/media/26467

スローされた例外:

java.io.FileNotFoundException: No such file or directory

また、他の一部の Android デバイスでこの例外がスローされないのは非常に奇妙です。このエラーの原因と修正方法を教えてください。

4

3 に答える 3

3
MediaStore.Images.Media.INTERNAL_CONTENT_URI 

ローカル デバイス上のイメージの場合、または

MediaStore.Images.Media.EXTERNAL_CONTENT_URI 

SD カード内の画像の場合。

両方に正しく対処していますか?内部/外部処理はデバイスによって異なります。おそらく、一部のデバイスでは機能し、他のデバイスでは機能しないのはそのためです。

于 2012-11-25T08:57:14.563 に答える
0

私は同じ問題に直面していますが、ImageView の setImageURI メソッドを使用して解決しました。

次のコードを使用する必要はありません。

InputStream inputStream = getContentResolver().openInputStream(uri);

次の関数を使用するだけです。

imageViewCustomer.setImageURI(data.getData());
于 2013-04-02T09:42:55.470 に答える
-2

Context.getContentResolver().openInputStream(Uri); を使用します。

于 2014-07-15T07:10:50.453 に答える