我将在我的 Android 应用程序中实现插件模式。
现在我已经创建了:
public abstract class PluginReceiver extends BroadcastReceiver
例如,在外部插件中
public class SmsPluginReceiver extends PluginReceiver
PluginReceiver
类还包含一些方法,如getIcon
,getName
等等。
SmsPluginReceiver
注册AndroidManifest.xml
为具有指定意图过滤器操作的接收器:
<receiver android:name=".plugin.sms.SmsPluginReceiver">
<intent-filter>
<action android:name="hsz.project.plugin" />
</intent-filter>
</receiver>
在主应用程序中,我正在搜索所有可用的插件PackageManager
:
PackageManager manager = getPackageManager();
Intent intent = new Intent("hsz.project.plugin");
List<ResolveInfo> matches = manager.queryBroadcastReceivers(intent, 0);
我得到了一个ResolveInfo
对象。
我完全不知道我应该用它做什么 - 如何访问SmsPluginReceiver
数据(图标、名称、...)?