Wir haben eine tab-basierte Anwendung, die die Möglichkeit für einen Kunden unterstützen muss, eigene Plug-in-Tabs hinzuzufügen. Beim Start unserer App muss ich mich über das Plug-in informieren, damit ich die Registerkarte erstellen, an der richtigen Stelle platzieren, beschriften, Symbole zuweisen und die Plug-in-Aktivität starten kann. Es scheint, dass diese die Daten ich brauche, dies zu tun:Dynamische Registerkarte Plugins
- Tab Priorität (verwendet, um die Registerkarten zu bestellen)
- Tab Etikett
- Tab Icon (s)
- Tab Activity (für den Start über Intent)
Dies sind nur einige der Optionen, die ich in Betracht gezogen habe:
Plug-in-Service. Dies würde erfordern, dass jede Plug-in-Aktivität einen zugehörigen Dienst hat. Ich würde dann PackageManager.queryIntentServices() verwenden, um Plug-In-Dienste mit einer bekannten Schnittstelle zu finden, und dann über diese Schnittstelle die Informationen anfordern, die ich über die Aktivität benötige.
Plug-in-Abfrage Intent-Filter. Ich bin mir nicht sicher, ob das überhaupt möglich ist, aber ich denke daran, die Daten zu speichern, die ich für die Plug-in-Aktivität im Intent-Filter benötige. Ich würde PackageManager.queryIntentActivities() verwenden, um die Plug-in-Aktivitäten und das Filterfeld der ResolveInfo zu finden, um Informationen über den Filter zu erhalten. Ich habe jedoch nicht die Details zum Speichern/Abrufen dieser Informationen im Intent-Filter.
Konfigurationsdaten. In der C++ - Welt würden diese Daten in einer XML-Konfigurationsdatei abgelegt, die von der App beim Start eingelesen wird. Dazu müsste die Konfiguration jedes Mal geändert werden, wenn ein Plug-in hinzugefügt wird. In unserem Fall ist das keine große Sache, da wir ein benutzerdefiniertes Gerät als Hauptanwendung verwenden. Aber ich würde es trotzdem lieber dynamisch machen. Wo befinden sich diese Daten auf Android?
Hat also jemand irgendwelche Empfehlungen, wie man das macht? Welche anderen Lösungen gibt es? Was ist am effizientesten?
Wie Sie wahrscheinlich sagen können, bin ich neu in Android. Ich habe mein Bestes getan, um Wege zu finden, dies zu implementieren, aber ich arbeite möglicherweise außerhalb der erwarteten Norm für Android.