Flutter 中访问外部相机出错 - "用户未授权访问设备"

7
我想通过我的平板电脑访问USB摄像头。
我下载了这个项目进行学习和测试,它完美地工作。相机打开、拍照并保存。 项目-github 我在Flutter中创建了一个项目,并建立了一个通信渠道来访问应用程序。但是当我尝试打开相机时,我收到以下消息:
用户未授权10404/com.example.monitoramento访问设备/dev/bus/usb/001/002。
我有一个device_filter.xml文件,在其中添加了设备PID和VID。
<?xml version="1.0" encoding="utf-8"?>

<usb>
    <usb-device class="239" subclass="2" /> <!-- all device of UVC -->
    <!-- a few android 9.0 -->
    <usb-device class="14" subclass="9" />
    <usb-device class="2" subclass="0" />
    <usb-device class="6" subclass="-1" />
    <usb-device class="39" subclass="0" />
    <usb-device product-id="4836" vendor-id="9573" />
    <usb-device product-id="2229" vendor-id="1133" />
    <usb-device product-id="640" vendor-id="1409" />
    <usb-device product-id="258" vendor-id="9228" />
    <usb-device product-id="2074" vendor-id="1133" />

</usb>


这些错误也被报告了。 在此输入图像描述 我感谢任何评论!

你找到解决方案了吗? - Taha Malik
2个回答

0

我这里遇到了类似的问题,使用了一个类似的应用程序(https://github.com/shengjunhu/android_uvc_camera)。 两个应用程序的 UI 界面看起来相同,甚至标题也相同(UVCCamera),这让我怀疑它们是有亲缘关系的。

在 Android 中,应用程序需要在访问 USB 设备之前获取权限。我了解到,这有两种方法:

  • 为应用程序定义意图过滤器。如果连接了匹配的 USB 设备,则会提示用户允许应用程序访问该 USB 设备,然后启动应用程序。在此情况下,应用程序已经获得了权限。意图过滤器需要设备列表来监听,例如 device_filter.xml

  • 如果应用程序扫描设备而不是等待通知,则必须明确获得权限。这与其他运行时权限类似,如 https://developer.android.com/guide/topics/connectivity/usb/host.html#permission-d 中所述。

如果您的应用程序扫描USB相机设备而不是监听意图,则第一选项不可用,并且修改device_filter.xml没有效果。发现相机后,您将需要请求权限并推迟相机访问,直到获得授权。

-1

你的理解不正确。 - Taha Malik
尽管我自己不知道答案 - Taha Malik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接