Android: Hörer für eingehenden Anruf ohne Erlaubnis

8

Ich weiß, dass wir Telefonstatus per Rundfunkempfänger mit Filter

hören können
  

Aktion android: name="android.intent.action.PHONE_STATE"

aber dieser Weg erfordert eine Erlaubnis

  

verwendet-permission android: name="android.permission.READ_PHONE_STATE"

Wie ermittelt man den eingehenden GSM-Anruf ohne diese Erlaubnis?

P.S.

Ich bin mir sicher, dass dies möglicherweise daran liegt, dass Whatsapp es macht.
 Wenn ich über die WhatsApp-Audioanrufe spreche und dann eingehende Gsm-Anrufe bekomme - WhatsApp prüft es und setze Selbstanruf auf Pause. Wie verstehen sie, dass Notwendigkeit Pause gesetzt?

Whatsapp hat die Berechtigung READ_PHONE_STATE in der Manifest-Datei, aber ich überprüfe Aufrufe von Android 6 und erteile diese Berechtigung nicht. Diese Berechtigung wurde deaktiviert.

Wenn diese Berechtigung deaktiviert ist, empfängt mein Receiver keine Aktion android.intent.action.PHONE_STATE und PhoneStateListener funktioniert nicht.

    
Dmitriy Puchkov 14.03.2017, 11:33
quelle

4 Antworten

8

Ich habe eine Lösung ohne diese Erlaubnis gefunden.

Zuerst (wenn unser sip call startet) müssen wir den Audiofokus mit dem Liseer anfordern

%Vor%

Der afChangeListener kann uns dann sagen, dass jemand den Audiofokus geändert hat und dann können wir den aktuellen Audiokanal überprüfen. Wenn der aktuelle Modus AudioManager.MODE_IN_CALL oder AudioManager.MODE_RINGTONE ist, wissen wir, dass der GSM-Aufruf gestartet wurde.

%Vor%     
Dmitriy Puchkov 30.03.2017, 07:25
quelle
2

Zuerst verwendete whatsapp die Erlaubnis, die benötigt wurde, um Telefonstatus

zu erhalten %Vor%

Hier ist WhatsApp-Menifest-Datei link .

Sie können sehen, dass sie ihre hinzugefügt und darin verwendet haben.

Android selbst bietet die beste Lösung, um es mit Broadcast-Empfänger zu behandeln. Sie sollten diese verwenden, sonst wäre Ihr System hacky.

Folgen Sie diesen Link , um mit der Übertragung zu arbeiten Empfänger, um Telefonanrufe zu erkennen.

Hoffe das hilft dir.

    
jitesh mohite 28.03.2017 09:19
quelle
0

Wenn das Android-Gerät einen Anruf onPause von Activity erhält, der angezeigt wurde, bevor der Anruf automatisch angerufen wird, können Sie den Anruf dort pausieren.

    
Karacken 14.03.2017 11:40
quelle
0

Sie können dies mit onReceive-Methode mit Telefonnummer und allen Details mit eingehenden Anruf erhalten.

    
parik dhakan 04.04.2017 04:10
quelle

Tags und Links