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