Gibt es eine Möglichkeit, dass ich auf die andere SIM in meinem Android zugreifen kann? Ich habe eine android Cherry Mobile Orbit, die ein Dual-SIM-Android-Handy ist. Ich möchte eine SMS-Anwendung für mein Telefon entwickeln, aber nur die 1. SIM wird zugänglich sein. Ich möchte auf die andere SIM zugreifen, so dass, wenn ich die Eingabetaste drücke, um die Nachricht zu senden, es eine Eingabeaufforderung geben wird, welche SIM die Nachricht gesendet wird. Ich weiß, dass es propritity ist, aber der Telefonhersteller hat kein Feedback darüber. Gibt es einen anderen Weg? Feinabstimmung oder etwas?
Ich denke, Sie können dex2jar oder apktool verwenden, um jene App umzukehren, die auf Dual-SIM-Karten-Geräten läuft, sobald Sie den zugehörigen "Service Manager", "Telefonie-Manager", einen Schnittstellen-Stub oder einige Schlüsselwörter wie "Gemini" gefunden haben. Sie können dann Java Reflection verwenden, die alle Methoden dieser Klasse widerspiegelt. Dann können Sie dieses Ziel erreichen.
Wenn Sie davon ausgehen, dass Sie die App für Ihr eigenes Telefon entwickeln, sind Sie bereit, die IDs ( sim_id
), die jeder Ihrer SIM-Karten zugewiesen sind, herauszufinden (wahrscheinlich durch Überprüfen der Log-Ausgaben des Telefons). Suche nach sim_id
, was ich getan habe), können Sie den folgenden Code verwenden, um die Standard-SIM für das Senden von SMS festzulegen:
Kombiniert mit einigen anderen UI-Prompts (um die bevorzugte SIM-Karte tatsächlich auszuwählen), sollte dies den Zweck erfüllen.
Ich bin mir überhaupt nicht sicher, ob dieser Ansatz für Sie funktionieren würde (obwohl der Code ziemlich "Standard" zu sein scheint); Ich habe es mit Versuch und Irrtum auf meinem Mlais MX28 (mit einem angepassten ROM) herausgefunden. Aber es ist immer noch einen Versuch wert, nehme ich an. :)
UPDATE:
Seltsamerweise funktionierte die Lösung nach einigen Aktualisierungen der App, an der ich gerade arbeitete, nicht mehr. Aber ich bin auf einen anderen Weg gestoßen (der vielversprechender zu sein scheint). (Ich glaube, dass dies auch für andere SIM-Auswahlszenarien erweitert werden kann, da der Einstellungscache Einträge mit name
s gprs_connection_sim_setting
, voice_call_sim_setting
, video_call_sim_setting
und dergleichen enthält.)
(Dies erfordert leider die Berechtigung android.permission.WRITE_SETTINGS
.)