Ich habe eine App gemacht, die verpasste Anrufe anzeigen kann, wenn der Bildschirm gesperrt ist, aber ich weiß nicht, wie die Nummer des verpassten Anrufs auf dem gesperrten Bildschirm angezeigt wird. Das Anrufbild stammt von MultiWaveView
, das bereits definiert hat, I habe trid mit OnDraw
, mit Canvas
und paint
, zeichne die specify coordinate.but es funktioniert nicht .so jemand mir helfen? vielen dank.
Wie zeigt man die Zahl (z. B. Bild ist Position 2 ) im Bild?
edit1
für jetzt habe ich die richtige Anzahl von verpassten Anruf in der App bekommen, aber es wird nicht richtig angezeigt
Klasse:
framework\base\core\java\com\android\internal\widget\multiwaveview\MissedCallView.java
}
Dies ist die benutzerdefinierte Ansicht, nur MissedCallView(Context context,int missedCallNum)
funktioniert, sie hat bei public class MissCallObserver extends ContentObserver
aufgerufen, wenn die verpasste angerufene Nummer gehört wird. Aber die onDraw funktioniert nicht, daher zeigt die App nicht die Nummer, die ich habe.
EDIT2:
für jetzt rufe ich die Funktion in meinem benutzerdefinierten hanlder, Handler alle 10 Sekunden
%Vor%Ich zeichne es mit Leinwand und Farbe, ohne XML-Dateien
Dann sperre ich den Bildschirm in XML: Keyguardscreentabunlock.xml (Framework \ base \ core \ res \ res \ layout).
verwenden Sie Ripple Lock im System:
%Vor%dann bekomme ich das:
Nun möchte ich die Nummer des verpassten Anrufs in der Mitte des Kreises anzeigen (in der Position der Bildmaus). Und ich weiß nicht, wie ich das erreichen soll.
Sie können Flag FLAG_SHOW_WHEN_LOCKED
Weitere Informationen zum Sperrbildschirm Meine Android-Sperre
%Vor%Zeilen aus API-Ebene 5
Window-Flag: Spezial-Flag, damit Fenster angezeigt werden, wenn der Bildschirm angezeigt wird verschlossen. Dies lässt Anwendungsfenster Vorrang vor Schlüssel haben Wache oder andere Sperrschirme. Kann mit FLAG_KEEP_SCREEN_ON verwendet werden um den Bildschirm einzuschalten und Fenster direkt anzuzeigen, bevor der Schlüssel angezeigt wird Wachfenster. Kann mit FLAG_DISMISS_KEYGUARD automatisch verwendet werden Entmutigen Sie nicht sichere Keyguards vollständig
Alles, was Sie brauchen, ist, das Telefon nach irgendwelchen Anrufen abzufragen, dann verpasste eins & amp; Dann ermitteln Sie einfach die Anzahl der Zeilen im Cursor, die von der Abfrage
zurückgegeben werden %Vor% In der where-Klausel setzen Sie die Bedingung für die Auswahl der Daten. In deinem Fall brauchst du alles, was gleich CallLog.Calls.MISSED_TYPE
ist.
Sie können den Namen des Anrufers und seine Nummer wählen, natürlich können Sie weitere Informationen angeben, die wie Nummerntypen wie Handy, Zuhause, Arbeit abgefragt werden.
Der Ausdruck entspricht der SQL-Abfrage, etwa wie folgt:
UPDATE2: Wie zeigt man die 2 im Bild an?
Sie müssen lediglich die Alarmzeichenfolge in den Systemeinstellungen wie folgt festlegen:
%Vor%Tags und Links android screen-lock