Android 清单中的意图筛选器不启动我的活动

Android 清单中的意图筛选器不启动我的活动,android,android-manifest,intentfilter,Android,Android Manifest,Intentfilter,我正在管理蓝牙的设置应用程序中创建一个“新应用程序”。我还有一个问题:我希望在框架发送下一个android意图时启动我的活动:android.bluetooth.device.action.PAIRING\u请求 因此,我在设置应用程序的AndroidManifest.xml中添加了以下内容: <activity android:name=".mybt.MyBluetoohSettings"> <intent-filter> <action

我正在管理蓝牙的设置应用程序中创建一个“新应用程序”。我还有一个问题:我希望在框架发送下一个android意图时启动我的活动:android.bluetooth.device.action.PAIRING\u请求

因此,我在设置应用程序的AndroidManifest.xml中添加了以下内容:

<activity android:name=".mybt.MyBluetoohSettings">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

问题在于,一旦框架发送了意图。。。。我的应用程序未启动

我还尝试了使用一个单一的意图过滤器(使用MAIN和PAIRING_请求意图)

理论上这应该行得通,对吗?我做错了什么?建议


提前感谢

蓝牙配对请求需要由接收器(从BroadcastReceiver扩展而来)而不是活动来处理。因此,您的清单应该在
中包含一个元素,该元素如下所示:

    <receiver android:name=".MyReceiver">
        <intent-filter>
            <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
        </intent-filter>
    </receiver>

是的,我在最初的蓝牙应用程序中看到过。但我不明白他们为什么这么做。为什么不能使用活动来代替?你能解释一下吗?我的问题是,现在,我的活动有一个带有意图过滤器的广播接收器对象。因此,当我的活动被实例化时,接收者被注册,我可以处理意图。但是,如果不是。。。我想让安卓启动它。对这种架构有什么建议吗?谢谢这就是安卓系统中广播的本质;因为可能有多个应用程序对配对请求感兴趣,所以使用广播接收器。不过,行为应该是一样的;如果您在清单中注册了广播接收器,即使应用程序当时没有运行,Android也会在事件发生时启动您的应用程序并调用广播接收器。请注意,如果应用程序崩溃或被强制关闭,则此操作将不起作用;如果这是您想要的行为,那么您需要创建一个Android将尝试重新启动的粘性服务。
public class MyReceiver extends BroadcastReceiver {

   public void onReceive(Context context, Intent intent) {

      //
      // Handle the pairing request
      //
   }
}