So überwachen Sie den SIM-Statuswechsel
Ich würde gerne in der Lage sein zu tun, einige Sachen, wenn die SIM-Status ändern, d.h. einen sound abzuspielen, wenn der SIM-PIN erforderlich ist, aber ich denke, es gibt keine Broadcast-Ereignisse, die abgefangen werden können durch einen broadcast-receiver für den... Registrierung für android.Absicht.Aktion.PHONE_STATE nicht nur sagen, Wann Sie den ANRUF-STATUS-änderungen.. Eine alternative Dienst starten, registriert eine PhoneStateListener und reagiert auf eine LISTEN_SERVICE_STATE (wenn der Staat OUT-OF-STATE-es kann sich die SIM-Staates aus der TelephonyManager und schauen, ob der Staat SIM_STATE_PIN_REQUIRED). So, meine Fragen sind:
1) gibt es eine Sendung die Absicht, dass ich verwenden können, um abzufangen, eine SIM-Status ändern oder einen Service-Status ändern?
2) ist es eine schlechte Idee ist, installieren Sie eine PhoneStateListener innerhalb einer Service, und verwenden Sie es zu liefern beabsichtigt, den Dienst selbst nach der Benachrichtigung von einem Handy aus-Zustand geändert, empfangen durch den PhoneStateListener?
InformationsquelleAutor der Frage Gianni Costanzi | 2012-05-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Absicht
android.intent.action.SIM_STATE_CHANGED
ausgestrahlt wird, wenn die SIM-Status ändert. Zum Beispiel auf meinem HTC Desire mit einem T-Mobile-SIM-Karte, wenn ich das Gerät in den Flug-Modus die folgende Absicht der Sendung:Wenn ich Sie dann nehmen Sie es out-of-flight-Modus, der folgende Absichten sind broadcast:
Ist es möglich, dass verschiedene Hersteller und verschiedene Modelle, die sich anders Verhalten. Wie Sie sagen, "Your mileage may vary".
InformationsquelleAutor der Antwort David Wasser
Davids Antwort ist vor Ort auf. Ich wollte fügen Sie einige Beispiel-code, um den Menschen helfen, Holen Sie sich begann mit der Implementierung eines solchen Staates zu überwachen.
InformationsquelleAutor der Antwort Tim Castelijns
Dem zweiten Ansatz, dass eine PhoneStateListener in einem Dienst, der überwacht onServiceStateChanged() für mich gearbeitet. Ich glaube, dass auf einigen Geräten werden Sie nicht bekommen, die interne broadcast -
android.intent.action.SIM_STATE_CHANGED
.InformationsquelleAutor der Antwort VladimirVip