我將在我的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