gpt4 book ai didi

android - Camerax 在服务中运行。如何在前台服务中获取生命周期所有者或在没有它的情况下运行?

转载 作者:行者123 更新时间:2023-12-02 11:18:11 28 4
gpt4 key购买 nike

用例 :是我必须在没有任何 Activity 或 fragment 的服务中在后台运行相机

拦截器 : 新的 camerax session 绑定(bind)到生命周期所有者,但服务没有。那么如何获取这个对象或在没有它的情况下运行?

已经尝试过 :我可以用 Camera2 库做同样的事情,但我想知道 Camerax 是否有可能,因为 Camera2 api 将来可能会被弃用。
还是谷歌故意试图阻止用户在没有 Activity 的情况下运行相机?

请建议

最佳答案

您是否尝试过扩展 LifecycleService而不是常规的 Service ?为此,您需要添加 androidx.lifecycle:lifecycle-service:2.x.y作为 gradle 文件中的依赖项(如果您还没有的话)。然后,当您调用 bindToLifecycle你刚刚通过的方法this作为参数,它应该可以工作:

class ExampleService : LifecycleService() {
// here should be use case implementation
...
processCameraProvider.bindToLifecycle(this, ...)
(免责声明:没有对此进行测试,所以我不是 100% 确定)。
此外,从 Android 11 开始,您应该包括 following snippet为此:
<manifest>
...
<service ... android:foregroundServiceType="camera" />

更多关于 LifecycleService here .

关于android - Camerax 在服务中运行。如何在前台服务中获取生命周期所有者或在没有它的情况下运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60630164/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com