Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android自定义意图过滤器未接收广播?_Android_Android Intent_Broadcastreceiver_Categories - Fatal编程技术网

Android自定义意图过滤器未接收广播?

Android自定义意图过滤器未接收广播?,android,android-intent,broadcastreceiver,categories,Android,Android Intent,Broadcastreceiver,Categories,我有一个广播接收器,带有指定单个自定义类别的意向过滤器: <receiver android:name=".sys.sub.SubServiceManager" android:enabled="true" android:exported="false" > <intent-filter> <category android:name="com.example.SUB_

我有一个广播接收器,带有指定单个自定义类别的意向过滤器:

    <receiver
        android:name=".sys.sub.SubServiceManager"
        android:enabled="true"
        android:exported="false" >
        <intent-filter>
            <category android:name="com.example.SUB_SERVICE_STATE" />
        </intent-filter>
    </receiver>
R.string.subServiceCat保存与intent筛选器中定义的字符串相同的字符串

对于自定义类别意图过滤器,我还需要做些什么吗?

说:

要通过此测试(操作测试),必须执行在意图对象中指定的操作 匹配筛选器中列出的操作之一。如果目标(意图)或 筛选器未指定操作,结果如下所示:

  • 如果筛选器未能列出任何操作,则没有任何操作 意图匹配,因此所有意图均未通过测试。没有意图可以得到 通过过滤器
  • 另一方面,未指定操作的意图对象 自动通过测试-只要过滤器包含至少 至少一个动作

您看到您的筛选器没有指定操作,因此您的意图无法通过筛选器。要解决此问题,您需要为收件人的筛选器指定操作或不指定任何符合您意图的操作。

Ah。。。因此,不能让意图过滤器只指定一个类别。我想知道为什么?这对我来说很有意义。。。那我就得重新设计了。谢谢你的帮助!
    Intent speed = new Intent();
    speed.addCategory(inst.getString(R.string.subServiceCat));
    speed.setAction("com.example." + SubServiceManager.START_COMMAND + Example.NAME);
    inst.sendBroadcast(speed);