我想在用户按下按钮时打开图库。我使用的代码是:
Intent resimGaleri = new Intent();
resimGaleri.setType("image/*");
resimGaleri.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Main.this.startActivity(resimGaleri);
但是,在此代码中,当用户按下按钮打开图库时,Android会询问“使用完整操作”,但我希望它直接打开图库而不会询问。我可以使用以下代码执行此操作:
startActivity(new Intent("com.android.gallery3d"));
但我不确定所有设备是否使用'com.android.gallery3d'。是否有可能或有其他方法可以做到这一点?
答案 0 :(得分:2)
并非所有设备都有com.android.gallery3d,而大多数设备都有。您可以通过MIME类型为image / *的intent操作VIEW查询包管理器,以获取活动列表。然后查看列表以找到正确的列表。
final Intent i = new Intent(Intent.ACTION_VIEW, null);
i.setType("image/*");
final List<ResolveInfo> apps = packageManager.queryIntentActivities(i, 0);
if(apps != null) {
for(ResolveInfo info : apps) {
if(info.resolvePackageName!=null && info.resolvePackageName.contains("gallery3d")) {//Maybe use more strict condition
//This is the target you want
//startActivity(XXXX);
return;
}
}
//Target not found
//Start the first match or handle your exception here
} else {
//Handle exception
}
答案 1 :(得分:0)
您可以使用此代码: (它测试的代码不能查看按摩问你)。
// select a file
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1);