首页 > 解决方案 > Android 应用程序不会记住 USB 权限

问题描述

我试图阻止我正在开发的应用程序在每次 USB 设备断开连接时请求 USB 权限。我关注了:USB设备访问弹出抑制?没有太多的运气。

该应用程序会记住 USB 设备,直到设备被拔出。

如果重要的话,我会尝试将应用程序连接到 Arduino Teensy。

这就是我的清单活动的样子

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>     <!-- For receiving data from another application -->
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
        </intent-filter>
        <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/usb_device_filter" />

    </activity>
</application>

这是我的 usb_device_filter 文件:

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

<resources>
    <usb-device vendor-id="--hidden--" product-id="--hidden--" />
</resources>

欢迎任何帮助。

编辑:我还查看了 Android 开发人员页面,他们在使用意图过滤器进行 USB 连接时说:如果用户接受,您的应用程序将自动获得访问设备的权限,直到设备断开连接。

我还想指出,建议的副本与我试图解决的问题不同。他们的问题是有两项活动,而我的问题只涉及一项。

https://developer.android.com/guide/topics/connectivity/usb/host

标签: javaandroid

解决方案


当 USB 插入手机时,我们最终自动打开了应用程序,因为我们的项目处理的是全天打开的应用程序。

该应用程序只要求手机使用USB一次的权限并立即记住它,只要用户在打开应用程序之前连接USB并且手机已解锁。手机重启后,手机甚至会记住权限。

这是一种解决方法,但它可以满足我们的需求。希望这将帮助其他一些有同样问题的人。


推荐阅读