我怎样才能找到残疾接收者的意图过滤器?

时间:2012-09-11 03:26:53

标签: android intentfilter

例如

<receiver android:name=".BootReceiver" android:enabled="true">
    <intent-filter>    
        <action android:name="android.intent.action.BOOT_COMPLETED"/> 
    </intent-filter>
</receiver>

应用有一个接收器,它设置为android:enabled="true"

我尝试了下面的代码,但它不起作用。

Intent intent = new Intent(Intent.ACTION_BOOT_COMPLETED);
List<ResolveInfo> resolveInfoList = mPackageManager.queryBroadcastReceivers(intent, PackageManager.GET_RESOLVED_FILTER);

但BootReceiver不在resolveInfoList中。

我也试过这些代码。

PackageInfo packageInfo = mPackageManager.getPackageInfo(applicationInfo.packageName, PackageManager.GET_RECEIVERS);
ActivityInfo[] receivers = packageInfo.receivers;

有些接收器为空。

那么如何找出禁用接收器的intent-filter?

1 个答案:

答案 0 :(得分:0)

我的坏。

我刚才找到了一个标志(GET_DISABLED_COMPONENTS)。

所以我可以使用这段代码

List<ResolveInfo> resolveInfoList = mPackageManager.queryBroadcastReceivers(intent, PackageManager.GET_DISABLED_COMPONENTS);

现在可行。