【问题标题】:Android USB Host. How do I get permission to use USB devices without displaying a dialog?安卓 USB 主机。如何在不显示对话框的情况下获得使用 USB 设备的权限?
【发布时间】:2015-09-27 16:51:58
【问题描述】:

有安卓设备没有屏幕。连接 USB 设备时,系统会自动出现允许使用 USB 的对话框。 不使用设备屏幕需要获得许可。 假设设备应用程序会提前安装,USB设备连接时会自动安装。

这究竟是如何做到的?

【问题讨论】:

  • 我认为你做不到。再想一想。那不是一个巨大的安全缺陷吗?如果应用程序无需询问就使用 USB,您几乎可以做任何事情。那不是这个主意。 android 设备本身可以在设置中允许它,但不能从您的应用程序中允许。
  • 也许有办法在 root 的帮助下做到这一点,并将应用程序安装为 system
  • 因为设备应该使用USB Host,而不是连接电脑。

标签: android permissions usb connect host


【解决方案1】:

添加到清单文件中的活动

<activity ...>
    ...
    <intent-filter>
        <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
    </intent-filter>

    <meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
        android:resource="@xml/accessory_filter" />
</activity>

在 res/xml 中使用 USB 设备的参数创建文件

<?xml version="1.0" encoding="utf-8"?>

<resources>
    <usb-accessory manufacturer="Google, Inc." model="DemoKit" version="1.0" />
</resources>

更多信息见https://developer.android.com/guide/topics/connectivity/usb/accessory.html

【讨论】:

  • 添加到我的设备。连接 USB 时会出现系统对话框以获取权限,但我需要有权限才能在没有对话框的情况下接收自动呼叫。
  • 第一次连接USB时(已安装应用程序),系统调用权限对话框。然后在启动应用程序 USB 的另一次将自动获得许可。如果您使用的是 root,请观看stackoverflow.com/questions/13726583/…
  • 一种没有屏幕的设备,但有一个预定的应用程序。当您连接 USB 设备时,我将无法按“确定”按钮并设置默认选择。即使是第一次,也有必要获得许可而无需进行对话。
  • 按照例子做了一切,类推补缺类,但是我的安卓版本(4.4.2),没有得到结果。
  • 谁能解释一下这个答案的组成部分?
【解决方案2】:

我在topic中类推。正确版本的 SDK 的类采用 away。我创建了必要的包并复制到指定的和缺少的类中。应将应用程序复制到文件夹 system/priv-app 并全部获得。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 2012-06-15
    • 2012-02-16
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    相关资源
    最近更新 更多