0

例如

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

一些接收器是空的。

那么如何找出禁用接收器的意图过滤器呢?

4

1 回答 1

0

我的错。

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

所以我可以使用这段代码

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

现在它起作用了。

于 2012-09-11T04:05:51.037 回答