- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于版主:我知道已经有这样的问题,但所有这些方法最终都会通过 data.getExtra("data")
提供位图,这实际上只是 thumbnail
.我想要获取 URI 而不是位图,并且我需要使用 2021
中可用的方法获取实际图像的 URI 而不是其缩略图。在将问题标记为重复之前,请考虑这一点!
我正在从相机获取图像,它在低端设备上工作正常,但当仅在 Android 10 和 11 中调用 onActivityResult
时,它在数据中给出空值。
我就是这么做的
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(intent, ACTION_REQUEST_CAMERA)
这是我的 onActivityResult
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == RESULT_OK && requestCode == ACTION_REQUEST_CAMERA) {
data?.data?.let { uri ->
Toast.makeText(context, "Got URI", Toast.LENGTH_LONG).show()
}
}
}
最佳答案
这种方法对我有用
在 list
文件中
<application>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.android.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths">
</meta-data>
</provider>
...
</application
创建了一个文件 /res/xml/file_paths.xml
并在其中指定了路径
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-files-path name="my_images" path="Pictures" />
</paths>
在我的 Activity
创建了一个全局变量 var cameraPhotoFilePath: Uri? = 空
这就是我如何启动 Camera acitivity for results
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
val photoFile: File? = try {
createImageFileInAppDir()
} catch (ex: IOException) {
// Error occurred while creating the File
null
}
photoFile?.also { file ->
val photoURI: Uri = FileProvider.getUriForFile(
this,
"com.example.android.provider",
file
)
cameraPhotoFilePath = photoURI
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI)
}
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
startActivityForResult(intent, ACTION_REQUEST_CAMERA)
这是我在上面代码中使用的辅助函数
@Throws(IOException::class)
private fun createImageFileInAppDir(): File {
val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
val imagePath = getExternalFilesDir(Environment.DIRECTORY_PICTURES)
return File(imagePath, "JPEG_${timeStamp}_" + ".jpg")
}
在 onActivityResult
的最后,我就是这样得到图像 Uri 的
if (resultCode == RESULT_OK && requestCode == ACTION_REQUEST_CAMERA) {
cameraPhotoFilePath?.let { uri ->
// here uri is image Uri that was captured by camera
}
}
关于android - 如何在 Android 10 及更高版本中通过 MediaStore.ACTION_IMAGE_CAPTURE Intent 获取图像 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66166944/
我有一个简单的 Android 应用程序,它尝试拍照并将其作为包含多部分数据的 HTTP POST 发送到服务器。问题是 Android 的 Intent 行为在某些手机上是不同的。当我运行时 Int
我的应用程序的一个功能包括相机。用户拍照,应用程序显示图像。 我使用 StartActivityForResult 启动一个 ACTION_IMAGE_CAPTURE Intent ,并使用 onAc
几天来我一直在寻找这个问题的解决方案,但我不知道该怎么做:( 我有一个使用 native 相机拍照的应用程序,但问题是,有时,只有在某些设备上,当我拍照并保存并返回时,我的应用程序才会重新启动。 它是
我们正在尝试使用原生相机应用让用户拍摄一张新照片。如果我们省略 EXTRA_OUTPUT extra 并返回小的位图图像,它就可以正常工作。但是,如果我们在启动前对 Intent 进行 putExtr
我正在使用标准相机 Intent 拍照: Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startAc
尝试在 Unity C# 中访问 Android native 相机组件,但无法正确移植 java 代码。我有另一个 intent call 用于共享,但我似乎无法让它工作。 这是我的代码: stat
我正在使用此代码打开相机 Intent : Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); takePicture.
这个问题在这里已经有了答案: Low picture/image quality when capture from camera (3 个答案) 关闭 3 年前。 我希望在 ImageView 中
我正在拍摄如下照片: activity.startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), BaseDef.REQU
我试图简单地从手机摄像头获取图像。令人惊讶的是,它返回旋转。我在互联网上搜索了修复方法,并找到了许多使用 ExifInterface 的解决方案,但它只是有时有效。它的方向似乎是随机错误的,因为我只是
我对这个描述有点困惑: The caller may pass an extra EXTRA_OUTPUT to control where this image will be written. I
我遇到了问题:ACTION_IMAGE_CAPTURE Intent 的行为取决于硬件制造商。 我认为,从插入照片库的相机中获取照片的最佳方式必须如下所示 Intent intent = new In
我正在使用以下代码告诉系统我要拍照: Intent intent = new Intent( android.provider.Medi
我想做的是创建一个新文件夹并将相机拍摄的图像保存在该文件夹中。我正在尝试使用以下代码 fragment 实现它: public class DocsAdd extends Activity {
我正在调用相机: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXT
我正在尝试接收通过 Mediastore.ACTION_IMAGE_CAPTURE Intent 拍摄的图像的 URI,但由于某种原因,默认相机应用程序 (Google+) 在它返回到我的 Activ
我想将额外的数据放入 Intent 相机,这看起来很简单...... 几天前它还可以工作,但是我对代码、avd 和目标版本做了很多更改,但现在它不工作了。 该项目现在的目标版本为 11。 事实上,我的
我正在使用 ACTION_IMAGE_CAPTURE 请求相机应用拍照。根据official doc如果我的应用使用相机功能但不需要它来正常运行,则应在 list 中保留以下内容
默认情况下,相机应用程序完成后我可以获得的图像将是矩形的。我想知道是否有可能让相机应用程序获得方形图像而无需裁剪原始矩形图像。 最佳答案 不,对不起。 首先,ACTION_IMAGE_CAPTURE
在 Android 上执行 ACTION_IMAGE_CATPURE Intent 的最可靠方法是什么?我尝试了多种在网上找到的方法,但没有一种方法适用于所有设备。我的测试设备是 Nexus 6 (A
我是一名优秀的程序员,十分优秀!