我将在我的Android应用程序中实现插件模式。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
数据(图标,名称,...)?
不确定这是可能的。您可能需要发送有序广播,以便从每个已注册的接收器中检索这种信息 - http://developer.android.com/reference/android/content/Context.html#sendOrderedBroadcast%28android.content.Intent ,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle%29。否则,您可能需要设置您自己的接收器注册表。 – 2012-02-15 12:54:48