Android 如何获取默认相机和多媒体资料包信息?
我想创建一个对话框,让用户选择相机或画廊来选择图像。 对话框中的每个项目都需要一个图标和一个图像。 如何为默认相机和多媒体资料获取这些内容 更新 我现在是这样得到的Android 如何获取默认相机和多媒体资料包信息?,android,kotlin,android-camera,android-gallery,Android,Kotlin,Android Camera,Android Gallery,我想创建一个对话框,让用户选择相机或画廊来选择图像。 对话框中的每个项目都需要一个图标和一个图像。 如何为默认相机和多媒体资料获取这些内容 更新 我现在是这样得到的 val galleryIntent = Intent(Intent.ACTION_GET_CONTENT).apply { setType("image/*") addCategory(Intent.CATEGORY_OPENABLE) putExtra(Intent.EXTRA_MIME_TYPES, ar
val galleryIntent = Intent(Intent.ACTION_GET_CONTENT).apply {
setType("image/*")
addCategory(Intent.CATEGORY_OPENABLE)
putExtra(Intent.EXTRA_MIME_TYPES, arrayOf("image/jpeg", "image/png"))
}
val galleryResInfo = packageManager.queryIntentActivities(galleryIntent, 0)[0]
val packageManager = holder.appName.context.packageManager
holder.appIcon.setImageDrawable(app.resolveInfo.loadIcon(packageManager))
holder.appName.setText(app.resolveInfo.loadLabel(packageManager))
然后在“回收器视图”对话框中,我可以得到如下图标和名称
val galleryIntent = Intent(Intent.ACTION_GET_CONTENT).apply {
setType("image/*")
addCategory(Intent.CATEGORY_OPENABLE)
putExtra(Intent.EXTRA_MIME_TYPES, arrayOf("image/jpeg", "image/png"))
}
val galleryResInfo = packageManager.queryIntentActivities(galleryIntent, 0)[0]
val packageManager = holder.appName.context.packageManager
holder.appIcon.setImageDrawable(app.resolveInfo.loadIcon(packageManager))
holder.appName.setText(app.resolveInfo.loadLabel(packageManager))
没有更好的解决方案吗?如果您要开始这两个目的
Intent(MediaStore.ACTION_IMAGE_CAPTURE)
Intent(Intent.ACTION_GET_CONTENT)
如果选择了相应的参数,Android将分别使用相应的参数(但没有选择器)打开默认应用程序。
Intent intent =new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
摄像机意图
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
问题是关于获取包裹信息,而不是意图。问题是关于获取包裹信息,而不是意图。由于您对这两个答案不满意,因此不清楚您想要实现什么。如果您想用两个按钮启动相机或多媒体资料,您可以提供自己的两个图标,并使用答案中的意图。如果您需要应用程序本身,您也可以使用这个答案:packageManager.resolveActivity,这个链接上的答案正是我想要的。这里唯一缺少的是MATCH_DEFAULT_only标志,它确保返回与startActivity相同的活动。谢谢你,克里斯蒂安!