【问题标题】:Android App Won't Remember USB PermissionAndroid 应用程序不会记住 USB 权限
【发布时间】:2019-01-21 22:17:33
【问题描述】:

我试图阻止我正在开发的应用程序在每次 USB 设备断开连接时请求 USB 权限。我跟着:USB device access pop-up suppression? 运气不好。

在设备拔出之前,该应用会记住 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 连接时:如果用户接受,您的应用程序将自动获得访问设备的权限,直到设备断开连接。 em>

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

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

【问题讨论】:

  • 不,这不是重复的,因为我只有一个 Activity 而不是两个,这是您建议的可能重复的问题。
  • 将USB连接到linux pc(和windows)时是否也会出现这种情况?
  • 不,当我将 Arduino Teensy 连接到计算机时,我的计算机没有请求许可。
  • @Wowsk 在权限弹出窗口中勾选复选框有什么不同吗?

标签: java android


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    正如提问者here 所说,为了您的目的(如果我理解正确),以下内容就足够了。没错,他有一个不同的问题,但他开始提出问题,说对于你的情况它是有效的。

    <activity android:name=".FirstActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <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>
    

    【讨论】:

    • 我正在使用该代码,但它不起作用。这就是问题所在。
    猜你喜欢
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 2011-11-16
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多