相机意图打开相机应用程序(仅第一次)

Posted

技术标签:

【中文标题】相机意图打开相机应用程序(仅第一次)【英文标题】:Camera intent open the camera app (only the first time) 【发布时间】:2021-02-08 20:59:55 【问题描述】:

这是上下文: 在我的应用中,我需要捕获图像,这就是我使用相机意图的原因。 此功能完美运行,但前提是相机应用程序之前已经打开过一次 事实上,这个问题只出现在新设备或新模拟器上

问题出在这里: 当我想拍摄图像时,会打开原生相机应用程序,给我一些关于如何拍照的提示。那不是我的应用程序中的相机应用程序,而是单独的相机应用程序。我需要关闭此相机应用,返回我的应用,然后重试 当我在设备的生命周期中至少访问一次相机应用时,没有问题

这就是我要找的东西: 我希望在我的应用中打开这个相机应用,即使这是第一次

我用经典的官方方式来抓图

https://developer.android.com/training/camera/photobasics

编辑 我认为问题是因为第一次,相机应用程序要求位置许可。所以我们需要在不请求这个权限的情况下打开意图,以保持焦点

【问题讨论】:

【参考方案1】:

当我想拍照时,会打开原生相机应用程序,给我一些如何拍照的提示。

大约有 26,000 种 Android 设备型号。它们附带了数十个(如果不是数百个)不同的预装相机应用程序。任何这些应用程序在首次运行该应用程序时的行为将因应用程序而异。此外,这些应用在首次运行时的行为方式取决于这些应用的开发者,而不是您或我。

这不是我应用中的相机应用,而是单独的相机应用

如果您使用ACTION_IMAGE_CAPTURE,它永远不会是“IN [your] app”,正如您的问题所暗示的那样。它始终是第三方应用程序、许多预安装的应用程序之一或用户应用程序之一。同样,这些应用的行为取决于各自的开发人员。

我希望这个相机应用在我的应用中打开,即使这是第一次

抱歉,这不是你能控制的。

【讨论】:

我认为问题在于您第一次打开相机应用程序时会询问位置权限。您认为我们可以在不征得此权限的情况下调用意图吗? @AymericLeFeyer:“我认为问题在于第一次打开相机应用程序时会询问位置权限”——相机应用程序几乎总是需要在首次运行时请求某种运行时权限。 “你认为我们可以在不征得这个许可的情况下调用意图吗?” ——你不是在请求许可。相机应用程序是。该决定取决于相机应用程序的开发人员。

以上是关于相机意图打开相机应用程序(仅第一次)的主要内容,如果未能解决你的问题,请参考以下文章

如何强制仅打开设备摄像头以进行视频捕获意图?

打开相机意图时如何防止android应用程序方向

我可以从我的 so 中读取打开的相机意图吗

如何使用您的 Android 应用程序中的意图以专业模式打开默认相机应用程序?

从相机意图中获取像素的颜色

使用相机意图时未调用 OnActivityResult()?