Hallo,
in der alten Version einer App (Delphi 10.2.2) habe ich die Berechtigung CALL_PHONE aktiviert im Manifest, weil ich eine kleine nützliche Funktion in der App habe, die eine Telefonnummer anruft, wenn man draufklickt. Dazu hatte ich IFMXPhoneDialerService benutzt. Ich konnte die App auf jedem Gerät installieren, egal ob es überhaupt einen SIM-Karten-Slot hatte. Wenn die Telefon-Funktion nicht vom Gerät möglich war, habe ich die Funktion halt deaktiviert.
Google hat mittlerweile die Berechtigungssituation verändert. Stelle ich eine aktuelle Version mit RIO 10.3.1 und 28er-
SDK (25.2.5) in den Playstore, meckert Google, dass nur noch 59% aller Endgeräte unterstützt werden. Das heisst, ich kann die App auf einem Tablet, was keinen Sim-Karten-Slot hat, nicht mehr installieren. Man findet die App von solch einem Gerät aus nicht mal mehr im Playstore, sie wird einfach nicht angeboten.
Mir ist klar, dass man im Vorfeld die Rechte festlegen muss, mir ist auch klar, dass man am Besten vor jedem Funktionsaufruf, der eine Berechtigung benötigt, noch mal abfragt, ob man das Recht hat.
Ich kann den Nutzern ohne SIM-Karten-Slot nicht das Update verweigern, möchte aber auch nicht auf die Funktion des Anrufens verzichten, sofern das Gerät es unterstützt. Was kann ich tun? Um alle Geräte weiter unterstützen zu können, werde ich das CALL_PHONE aus dem Manifest rausnehmen müssen, aber was mach ich mit der Funktion? So viele Geräte nur aufgrund einer nicht vorhandenen technischen Voraussetzung auszuklammern, ist sehr blöd, zumal man das ja auch im Quelltext abfragen kann, ob die technische Voraussetzung erfüllt ist.
Die Anruffunktion muss nicht von der App gesteuert oder kontrolliert werden, ich möchte einfach nur den Anruf auslösen, und zwar nicht so, dass der User sich die Nummer merken oder auf einen Zettel schreiben muss, um sie dann manuell einzutippen (auch nicht über Zwischenablage). Gibt es eine Funktion, die ich nicht kenne, die die Nummer an das Telefon einfach weitergibt? Meinetwegen darf das Telefon dann auch fragen, ob man das wirklich will. Sollte allerdings sowohl unter Android als auch unter iOS funktionieren.
Oder gibt es einen Trick, mit dem der Playstore (mit CALL_PHONE im Manifest) die "nicht unterstützten Geräte" doch zulässt?
Zwei verschiedene Apps nur deswegen in den Store zu stellen, ist für mich keine Alternative.
Jaja, ich weiß, ich komme immer mit bekloppten Spezialproblemen, aber trotzdem schon mal im voraus danke für Eure Hilfe!