android USB_DEVICE_ATTACHED仅在USB设备断开连接时触发

ivqmmu1c  于 2023-01-19  发布在  Android
关注(0)|答案(1)|浏览(290)

我有一个BroadcastReceiver,可以通过USB监听设备的连接和断开。连接扫描仪时,USB_DEVICE_ATTACHED不起作用(扫描仪#1)至器械(Android OS 6)。当扫描仪断开连接时,USB_DEVICE_ATTACHED被触发,然后立即触发USB_DEVICE_DETACHED。为什么连接时USB_DEVICE_ATTACHED不触发?如果您连接另一台扫描仪,那么一切正常,连接后立即触发USB_DEVICE_ATTACHED。另外,如果您将1号扫描仪连接到另一台设备(Android OS 10),那么连接后一切也正常。可能是什么原因?我很乐意提供任何提示。
舱单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.evotor.myapplication">

    <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/Theme.MyApplication">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <receiver
            android:name=".TestReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
                <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

测试接收器

class TestReceiver : BroadcastReceiver() {

    override fun onReceive(context: Context?, intent: Intent?) {
        Log.d("MyLog", "onReceive")
        intent?.let { intent: Intent ->
            intent.action?.let { action: String ->
                Log.d("MyLog", "action $action")
            }
        }
    }
}
9wbgstp7

9wbgstp71#

在清单文件中添加以下内容:

<service
    android:name=".UsbService"
    android:enabled="true"
    android:exported="true">

    <intent-filter>
        <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
    </intent-filter>
</service>

相关问题