Manifest.xml,intent-filter和USB配件

时间:2014-01-16 18:07:08

标签: android usb android-manifest adt

我目前在Manifest.xml中有以下内容

 <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

                <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>

现在,当连接USB附件时,这将尝试启动我的应用程序。

我需要进行哪些更改才能使应用程序在连接附件(假设已经启动)时不尝试启动,但在插入USB端口时仍会识别附件?

1 个答案:

答案 0 :(得分:0)

您只需创建一个Service/Intent Service即可启动而不是应用程序中的活动,您可以在后台执行任务。
连接USB时发生广播事件。您可以使用以下代码模板简单地接收它。

public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// UsbManager.ACTION_USB_STATE -> "android.hardware.usb.action.USB_STATE" actually
if (action.equals(UsbManager.ACTION_USB_STATE)) {
    Bundle extras = intent.getExtras();
    // UsbManager.USB_CONNECTED -> "connected" actually
    usbConnected = extras.getBoolean(UsbManager.USB_CONNECTED);

来源:USB Connection notification
我希望这有帮助。         ...