Merci pour la réponse de ShaiLeTroll.
J'ai essayé le code
1 2 3 4 5 6
| TPL = class(TJavaGenericImport<JPhoneStateListenerClass, JPhoneStateListener>)
Public
Constructor Create;
Destructor Destroy; Override;
...
end; |
La compilation passe très bien, il n'y a plus d'erreur. Sauf ça ne marche pas.
Voila mon code pour l'utilisation du classe TPL ci-dessus.
1 2 3 4 5 6 7 8 9 10 11 12 13
| procedure TForm31.Button1Click(Sender: TObject);
Var obj: JObject; identifier: String;
tm: JTelephonyManager; Tj: TPL;
begin
obj:= SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);
if obj <> nil then begin
tm:= TJTelephonyManager.Wrap((obj as ILocalObject).GetObjectID);
if tm <> nil then begin
Tj:= TPL.Create;
Tm.listen(Tj, TJPhoneStateListener.JavaClass.LISTEN_CALL_STATE);
End;
End;
end; |
En fait je voulais traduire ce code java http://www.truiton.com/2014/08/andro...tener-example/ en delphi mais ça ne marche pas.
Mon but est de détecter si le téléphone reçoit un appel et identifiant le numéro de téléphone.
Avec ce code ça marche le status de l'appel mais pas le numéro de l'appelant.
1 2 3 4 5 6 7 8 9 10 11
| obj:= SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);
if obj <> nil then begin
tm:= TJTelephonyManager.Wrap((obj as ILocalObject).GetObjectID);
if tm <> nil then begin
CASE tm.getCallState OF
CALL_STATE_IDLE: Label1.Text:= 'StandBy';
CALL_STATE_OFFHOOK: Label1.Text:= 'Appel Sortant...';
CALL_STATE_RINGING: Label1.Text:= 'Appel entrant...';
END;
End;
End; |
C'est pour ça que je cherche la solution à partir de déclenchement de l'événement
JPhoneStateListener.onCallStateChanged(state: Integer; incomingNumber: JString);
pour trouver aussi en même temps le numéro de l'appelant en cours.
Si quelqu'un a une idée l'utilisation LISTENER en delphi.
J'ai déjà essayé aussi en BroadCast aussi mais c'est ça ne marche et j'arrive pas aussi encore à implémenter en delphi.
Partager