まず第一に、これは結果コードが時期尚早に返されるという頻繁に投稿される問題ではありません。この場合、アイテムがギャラリーで選択された後にのみ返されます。
私のテスト ケースでは、次のコードでギャラリーを呼び出します。
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, SELECT_PICTURE);
onActivityResult には次のものがあります。
if (resultCode == Activity.RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
pathText.setText(selectedImageUri.getPath());
}
} else {
pathText.setText("Result not OK - code is " + resultCode);
}
pathText は、テスト ケースで結果を表示するために入れた単なる TextView です。実際のアプリケーションでは、パスの用途が異なります。
_GET_CONTENT の代わりに ACTION_PICK を使用すると、他の人からすぐに失敗が報告されます。マニフェストに launchMode タグはありません (一部の投稿では、その領域の問題が示唆されています)。
たぶんここに手がかりがあります。Toshiba Thrive では、Gallery、File Manager、または Fish Bowl Photo Gallery を使用すると、このバグは表示されません。Kindle Fire では、Quickoffice も画像パスを正しく返すことができます。このバグは、Kindle のビルトイン ギャラリーでのみ表示されます。このバグは、「Motorola Droid(2.3.4) 、HTC EVO (2.3)」でも確認されました。
これらすべてのデバイスで機能する方法でギャラリーから画像パスを取得するにはどうすればよいですか?