I am going to implement plugin pattern in my Android application.
Right now I have created:
public abstract class PluginReceiver extends BroadcastReceiver
In an external plugin there is for example
public class SmsPluginReceiver extends PluginReceiver
PluginReceiver
class contains also a few methods like getIcon
, getName
and so on.
SmsPluginReceiver
is registered in AndroidManifest.xml
as a receiver with specified intent-filter action:
<receiver android:name=".plugin.sms.SmsPluginReceiver">
<intent-filter>
<action android:name="hsz.project.plugin" />
</intent-filter>
</receiver>
In main application I am searching for all available plugins with PackageManager
:
PackageManager manager = getPackageManager();
Intent intent = new Intent("hsz.project.plugin");
List<ResolveInfo> matches = manager.queryBroadcastReceivers(intent, 0);
and I got one ResolveInfo
object.
I do not know at all what should I do with it - how to access SmsPluginReceiver
data (icon, name, ...) ?