当通过 USB 将外部设备(例如相机)连接到 Android 智能手机时,您通常会看到一个弹出窗口:“为 USB 设备选择一个应用程序”,选择框中有一些不同的应用程序。
所以我的简单问题是:我怎样才能在选择中获得自己的应用程序。
我在stackoverflow上能找到的所有东西都是过滤意图,但我什至不确定这是否是正确的方向,因为它们主要用于文件打开和类似的东西。
感谢评论我想出了这个:
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<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" />
</activity>
如果我用这个设置做对了(显然我没有做对),那么在连接 USB 设备时,应用程序现在应该在选择中可见,但它仍然不是。
编辑:解决方案:我必须添加:<uses-feature android:name="android.hardware.usb.accessory" />
和
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</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" />
至少protocol="0"
在过滤器中。