Android在应用运行时不启动活动(在IntentFilter匹配时)

时间:2018-01-17 05:46:58

标签: android android-activity usb intentfilter

我正在处理USB设备连接。在这里,我的Android手机将在主机模式下工作。

我在清单中指定了Intent过滤器,如:

    <activity android:name=".TestActivity">
    <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/device_filter" />
    </activity>

所以每当我的设备连接时,它都会显示USB权限的弹出窗口并启动TestActivity。

但是如果我的应用程序正在运行而我正在进行其他活动,那么它也会启动测试活动。

如果我的应用已经在运行,我想再次避免启动活动。 有可能吗?

由于

2 个答案:

答案 0 :(得分:0)

BroadcastReceiver用于USB_DEVICE_ATTACHED

onReceive() Use this

答案 1 :(得分:0)

我在这里有解决方法。 此处Intent已注册到活动,因此活动将在硬件连接 ( ie: on receive of this action <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />)

上启动
  
      
  1. 创建活动而不设置布局并添加完成   如果你想获得设备细节,那么你可以从这里获得。
  2.   
onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    UsbDevice device = (UsbDevice)getIntent().getParcelableExtra(UsbManager.EXTRA_DEVICE);
    finish();
}
  
      
  1. 您的活动的清单文件添加主题(此处为TestActivity)
  2.   

android:theme="@android:style/Theme.NoDisplay"