问题标签 [android-image-capture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
19 浏览

android - 如何在自定义位置保存相机照片?

我目前在这里使用以下代码:

我使用它是因为我无法从官方文档中获取样本来工作。

我以前用过:

但它仅适用于 Android Q 及更高版本。

我也不知道如何使用 imageUri 保存到自定义位置,因为它使用 contentResolver:

如何使用上述代码将照片保存在自定义位置?

0 投票
0 回答
400 浏览

android - 如何制作 android.media.Image 对象的副本?

我需要为解决方案制作“android.media.Image”对象的副本,但由于该类是抽象定义的,我们不能自己创建它的实例。

我从 ((ImageReader)reader).acquireLatestImage(); 获取这个对象的实例

是否有任何解决方法可以让我获得此方法返回的对象的两个不同克隆实例?

任何建议都非常感谢。

0 投票
1 回答
215 浏览

android - 如何使用 Android CameraX 获取拍摄照片的 ISO 和曝光时间?

我在我的应用程序中使用Android CameraX来拍照。当我拍摄照片时,我可以根据文档使用ImageCapture.OnImageCapturedCallbackImageCapture.OnImageSavedCallback

我的问题是,它们都不包含有关所拍摄照片的 ISO 或曝光时间的信息。我怎样才能得到这些信息?

0 投票
0 回答
158 浏览

java - 将结果 ResultInfo{who=null, request=65538, result=-1, data=null} 传递给活动失败

这是我用来保存设备上相机和图库中的图片的行代码:

相机意图:

画廊意图:

这是用于在设备上保存文件夹的 onActivityResult:

用于在设备上保存图片的方法,与您的 Android 版本一致:

日志返回:

java.lang.RuntimeException:将结果 ResultInfo{who=null, request=65538, result=-1, data=null} 传递给活动 {br.agr.terraviva.modelogestao/br.agr.terraviva.modelogestao.ui.act005 失败.AuditoriaUGBActivity}: android.database.CursorIndexOutOfBoundsException: 请求索引 0,在 android.app.ActivityThread.deliverResults(ActivityThread.java:5080) 处的 android.app.ActivityThread.handleSendResult(ActivityThread.java:5121) 处的大小为 0 android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2183) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:241) 在 android.app.ActivityThread.main(ActivityThread.java:7604) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android .internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941) 原因:android.database.CursorIndexOutOfBoundsException:请求索引 0,与大小为 0 在 android.database.AbstractCursor.checkPosition(AbstractCursor.java:515) 在 android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:138) 在 android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:52) 在android.database.CursorWrapper.getString(CursorWrapper.java:141) 在 br.agr.terraviva.modelogestao.ui.act005.FA04.onActivityResult(FA04.java:350) 在 androidx.fragment.app.FragmentActivity。onActivityResult(FragmentActivity.java:170) 在 android.app.Activity.dispatchActivityResult(Activity.java:8136) 在 android.app.ActivityThread.deliverResults(ActivityThread.java:5073) 在 android.app.ActivityThread.handleSendResult(ActivityThread.java :5121) 在 android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor. java:95) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:241) 的 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2183) ) 在 com.android.internal.os 的 java.lang.reflect.Method.invoke(Native Method) 的 android.app.ActivityThread.main(ActivityThread.java:7604)。RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941) 

0 投票
0 回答
1274 浏览

android - 将使用 MediaStore.ACTION_IMAGE_CAPTURE 从相机拍摄的照片写入 Android 11 上的外部存储

我正在尝试使用拍照Intent(MediaStore.ACTION_IMAGE_CAPTURE)并将其保存到外部缓存中。在开始活动之前,我要求获得CAMERA, READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE权限。创建的代码示例Intent如下:

在运行 Android 10 及更低版本的设备上,它可以正常工作,但在 Android 11 上,我收到此错误并收到RESULT_CANCELED或只是在相机应用程序中崩溃。

我的文件提供者:

和提供者路径:

我也尝试使用getExternalFilesDir而不是缓存,但得到了同样的错误。

0 投票
0 回答
181 浏览

android - Android App 因仅在特定设备中捕获图像而崩溃(一加 6T)

我正在构建一个 Android 应用程序,其中包括在不同的屏幕(活动)中收集不同类别的客户数据。用户输入的数据(所有输入字段)存储在全局变量(静态)中。在最后一个屏幕或活动中,我试图在保存所有详细信息之前捕获与客户相关的多个图像。捕获图像时,应用程序崩溃并且全局静态变量变为空,因此我丢失了在先前其他屏幕中输入的所有数据,从而使我无法保存数据。该代码在其他设备上运行得非常好,而且这个问题只发生在少数设备中,其中之一是 One Plus 6T。这个问题的原因是什么,我该如何解决?

这是我捕获图像并将其添加到全局变量的活动:

0 投票
0 回答
47 浏览

android - Android 使用 URI 捕获图像并通过 PHP 上传到 MySQL 数据库

我制作了一个 android 应用程序来从默认相机捕获图像,然后使用 bitmap.compress() 对其进行压缩,然后使用 PHP 将其上传到我的 MySQL 数据库。现在的问题是,使用位图我得到非常低质量的图像。我找到了一个解决方案,即使用 URI 来捕获图像而不是位图。但后来我不知道如何使用 URI '通过 php 将其上传到 mysql'。有人可以将我的代码从位图编辑到 URI 并输出我可以传递给我的 php 脚本的“图像字符串”(就像代码中使用的“encoded_front”字符串变量一样)。万分感谢。

这是我的代码

0 投票
0 回答
47 浏览

android - 图像捕获后的Android横向模式错误

我发现在某些设备上,在以横向模式拍照后,该应用程序会出现问题。我的应用程序设计为仅处于垂直(纵向)模式,这在清单和活动定义中都有说明。当我调用 MediaStore.CaptureImage 意图并以横向模式拍摄照片时,然后返回到我的应用程序时,它会崩溃,因为我的应用程序无法以横向模式呈现。

正如我所说,这不会发生在每个安卓设备上,一些设备可以毫无问题地切换回纵向/垂直模式。一般来说,在我看来,这主要发生在 android 11 上,但这可能不是原因。

在活动类定义中:

在清单中:

调用图像捕获的意图:

在我发现该错误仅在以横向模式拍摄照片时发生后,我尝试在从图像捕获返回时以编程方式修复应用程序方向。这没有帮助。

我感谢任何建议和意见,谢谢。

0 投票
0 回答
44 浏览

android - 在 Android11 中,我想使用该设备的默认 Cropper 并使用 Crop Intent 可能吗?

在 Android11 中,我想使用该设备的默认 Cropper 并使用 Crop Intent 可能吗?

此代码在 android 11 以下工作,但不能在 android 11 startactivity 上工作,因为结果没有给出结果 ok 。我试过这段代码......

0 投票
0 回答
155 浏览

android - 活动结果 API(TakePicture() 相机):传递结果 ResultInfo 失败(应用程序崩溃)

我一直在努力解决在使用相机应用程序拍照时有时会破坏我的活动的问题,导致以下错误和应用程序崩溃。

我已经按照 Google 文档了解如何在此处使用相机拍照。经过 3 或 4 次试验,它仍然产生上述错误。

我放弃了startActivityForResult新的旧方法Activity Result APIs,但仍然存在同样的问题。

此处的文档具体说明了以下内容:

在为结果启动活动时,有可能(并且,在内存密集型操作的情况下,例如使用相机,几乎可以肯定)您的进程和活动将由于内存不足而被破坏。

出于这个原因,活动结果 API 将结果回调与代码中您启动其他活动的位置分离。由于重新创建流程和活动时结果回调需要可用,因此每次创建活动时都必须无条件注册回调,即使启动其他活动的逻辑仅基于用户输入或其他业务逻辑发生。

因此,它指出即使活动被销毁,新的活动结果 API 也会以某种方式处理这个问题。

这是我现在使用的代码:

将活动添加android:configChanges="orientation|screenSize"或修复到肖像没有帮助。

对此有适当的解决方法吗?

完整的堆栈跟踪: