Wie würde ich meine App starten lassen, wenn ein Geheimcode wie *#*#12345#*#*
in den Dialer eingegeben wird?Lassen Sie meine App starten, wenn der Geheimcode eingegeben wurde?
Ich konnte keine Lösung in der Android-Dokumentation finden.
Wie würde ich meine App starten lassen, wenn ein Geheimcode wie *#*#12345#*#*
in den Dialer eingegeben wird?Lassen Sie meine App starten, wenn der Geheimcode eingegeben wurde?
Ich konnte keine Lösung in der Android-Dokumentation finden.
Dies ist, wie ich es tat:
ich meine Haupttätigkeit geändert keine Intent-Filter zu haben:
<activity
android:name=".ParentTrap"
android:label="@string/title_activity_parent_trap"
android:theme="@android:style/Theme.Holo" >
</activity>
ich dann einen Rundfunkempfänger mit der Absicht Filteraktion gemacht: android.provider.Telephony.SECRET_CODE
Ich fügte dann Daten hinzu. Die ganze Sache ist unten:
<receiver android:name=".ParentTrap$Launch" >
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
<data
android:host="(secret code)"
android:scheme="android_secret_code" />
</intent-filter>
</receiver>
Ist das erledigt, eine Klasse machen (Ich habe die Launch-Klasse in meiner Hauptklasse, Rundfunkempfänger erstreckt), dann in der OnReceive Klasse, feuert eine Absicht, die Aktivität zu starten.
Wenn Sie dann *#*#(secret code)#*#*
in den Dialer eingeben, wird die App gestartet.
Dies funktioniert nicht für mich auf Samsung Galaxy Note GT-N7000 mit Android 4.1.2. Müssen wir etwas anderes tun, damit es funktioniert? – Manish
@Manish war die App geöffnet, bevor Sie es versuchten? –
Ja, ich habe eine leere Aktivität erstellt. Bitte beachten Sie meine Frage dazu: http://stackoverflow.com/questions/18901339/android-provider-telephony-secret-code-reserved-for-system-apps und bitte helfen Sie, wenn Sie können. – Manish
erstellen Rundfunkempfänger mit dieser Aktion:
In Extras, die Sie the dialed number finden.
Bearbeiten: Hier ist tutorial für Broadcast-Empfänger.
Nicht so ... Aber es muss vielleicht tun. –
Ich glaube nicht, dass Sie in der Lage sind, die einfache Dial-Aktion abzufangen, ohne tatsächlich anzurufen ... – eftokay83
Ah, ich sprach über die * # * # Geheimcodes, aber ich habe herausgefunden, wie man sie verwendet :) –
Insted broadcast receiver vielleicht sollten Sie sich für die richtige Aktivität Absicht registrieren. Zum Beispiel: Intent.ACTION_CALL sieht aus wie. Problem ist, wie Absichten gefiltert werden, um nur diese eine spezifische Zahl zu erhalten. Ich vermute, dass es so aussehen würde (ich Gesing auf das, was ich in der Dokumentation gefunden habe):
<action name=".YourAction">
<intent-filter . . . >
<action android:name="android.intent.action.CALL" />
<!-- data is crutial here, you have to figuire it out exacly yourself -->
<data android:scheme="tel" android:path="yourSpecyficSecretCode" />
</intent-filter>
</action>
Blick here und here. Verwenden Sie LogCat, um zu sehen, was genau beabsichtigt, dann können Sie dies richtig filtern.
Warum implementieren Sie nicht einfach einen Splashscreen, auf dem Sie einen Code eingeben müssen? – 4ndro1d