Android:获取所有BroadcastReceiver'类

时间:2014-08-02 01:35:16

标签: android

我有一个应用程序,AppMain和几个插件应用程序(但是对于这个例子,只有一个:AppPlugin):

AppPlugin在其清单中注册了BroadcastReceiver:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.plugin">
    ...
    <receiver android:name=".Receiver">
        <intent-filter>
            <action android:name="com.example.LISTEN"/>
        </intent-filter>
    </receiver>
</manifest>

从AppMain,我使用queryBroadcastReceivers()获取所有接收器的列表,如下所示:

Intent intent = new Intent( "com.example.LISTEN" );
List<ResolveInfo> list = game.getPackageManager().queryBroadcastReceivers( intent, 0 )

list现在包含来自AppPlugin的ResolveInfo,我可以从中获取一些有用的信息。到目前为止一切都很好。

但我现在想要在清单中注册AppPlugin的接收器类(在这种情况下它将是“com.example.plugin.Receiver”)。但我找不到从ResolveInfo获取该信息的方法。

那么,我将如何获得BroadcastReceiver的课程?

1 个答案:

答案 0 :(得分:1)

我相信你正在寻找ResolveInfo#activityInfo.name。例如,对于列表中的第一项:

String name = list.get(0).activityInfo.name;