基于https://developer.android.com/guide/components/foreground-services#bg-access-restriction-exemptions,我们只能在前台服务中开始使用照相机,而不启动应用程序(使其可见),如果:
服务由系统组件启动。服务是通过与应用程序小部件交互启动的。服务是通过与notification.
H 112服务由具有VoiceInteractionService.
H 215F 216在我的情况下,我需要在没有用户交互和设备屏幕关闭的情况下在后台打开相机,在我理解的情况下,只有在以下情况下才有可能:
服务是由系统component.
The服务启动的,是由一个以设备所有者模式运行的设备策略控制器的应用程序启动的。
是由具有START_ACTIVITIES_FROM_BACKGROUND特权权限的应用程序启动的。
。
系统组件--虽然我想这个组件也不适合开发人员,因为它意味着一个系统应用-系统组件?
另外,对于START_ACTIVITIES_FROM_BACKGROUND,一个普通的应用程序能否拥有这个权限,如何授予它呢?在Android网站上找不到关于这个的任何信息。
如果它也只适用于系统应用程序,那么唯一的选择是设备策略控制器从前台服务打开摄像头,而前台服务是在Android 11+的后台启动的?
附注:如果有人感兴趣,为什么需要这样的功能。这是仪表板相机应用程序所需要的。用户的车里有一部智能手机,例如,当他们打开手机(如果没有电源的话),他们想要在没有互动的情况下自动启动视频记录。
所以在所有情况下,它都会自动记录,就像一个真正的仪表盘
但是Android 11带来了这些限制..。
发布于 2021-05-31 08:38:48
在Android 11和更高版本中,这似乎不再可能了(理由很充分!)只要设备连接到carkit或car收音机(通过蓝牙,您可以注册一个使用动作BroadcastReceiver收听意图的ACTION_ACL_CONNECTED),就可以发布一个本地通知。用户可以启动前台服务,然后通过与通知交互。
https://stackoverflow.com/questions/67617856
复制相似问题