Я собираюсь реализовать шаблон плагина в своем приложении для 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
данным (значок, имя, ...)?