ASTROファイルマネージャなどの他のギャラリー様のアプリケーションではなく、Androidのネイティブギャラリーから選択する方法を教えてください。ユーザーが複数のアプリケーションのことを持っているならば、インテント経由でAndroidネイティブギャラリーにアクセスする
activity.startActivityForResult(Intent.createChooser(intent, "Select Picture"), REQUEST_CHOOSE_IMAGE);
:私は、このような何かを行う場合は
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
List<ResolveInfo> infos = activity.getPackageManager().queryIntentActivities(intent, 0);
:
次のコードでは、画像を選択することができる活動のリストを与えます(ASTROファイルマネージャなどの)ギャラリーのように動作することができますが、そのうちの1つを選択するように促され、「デフォルトとして設定」オプションはありません。
私はユーザーにその都度選択するように求められたくないので、ネイティブギャラリーを使用したいと思います。
以下のハックのコードサンプルは、既知のネイティブのギャラリー名をテストするためのホワイトリストを使用しています。
for (ResolveInfo info : infos) {
if ( 0==info.activityInfo.name.compareTo("com.cooliris.media.Gallery")
|| 0==info.activityInfo.name.compareTo("com.htc.album.CollectionsActivity")
) {
// found the native gallery
doSomethingWithNativeGallery();
}
}
はちょっと汚い感じています。より良い方法がありますか?私は私の意図で何かを逃していると思う。
を行うには好きなものを、明確な答えを得られないだろう場合
- - それは、から選択しない、私はやったことの画像情報を取得する
複数のインストール可能なギャラリーのようなアプリ - ASTROもインストールしてみてください。さらに、最近sdcardを直接参照するべきではなく、代わりにEnvironment.getExternalStorageDirectory()を使用してください。 –