Android Dialer-Anwendung

Ich bin dabei, einen Weg zu finden, die Standard-Dialer-Anwendung von meiner benutzerdefinierten Dialer-Anwendung zu ersetzen, aber ich bekomme nicht, wie man das erreicht.

Hier ist was ich will

  • Erstellen Sie eine benutzerdefinierte Dialer-Benutzeroberfläche
  • Meine Anwendung wird immer dann aufgerufen, wenn eine Ruftaste oder die Taste in Android gedrückt wird
  • Die Anwendung kann auch vom Kontaktbildschirm aus aufgerufen werden

Ich beziehe mich auf den öffentlichen statischen String ACTION_DIAL .

Solutions Collecting From Web of "Android Dialer-Anwendung"

  1. Erstellen Sie eine einfache Android-Anwendung (unser Dialer). Um jemanden tatsächlich anzurufen, brauchst du nur diese Methode:

    private void performDial(String numberString) { if (!numberString.equals("")) { Uri number = Uri.parse("tel:" + numberString); Intent dial = new Intent(Intent.ACTION_CALL, number); startActivity(dial); } } 
  2. Erteilen Sie Ihrer Anwendung die Berechtigung, AndroidManifest aufzurufen

      
  3. Stellen Sie in AndroidManifest die Absicht ein, die Ihr Telefon anweist, Ihre App zu verwenden, wenn Sie einen Dialer benötigen

Wenn jemand die Ruftaste drückt:

      

Wenn jemand einen URI abfeuert:

         

Das hat für mich funktioniert:

              

Die ACTION_DIAL-Intention scheint es Ihnen zu ermöglichen, eine Nummer an den Standard-Dialer weiterzuleiten, die für den Benutzer bereit ist, sie anzurufen, wenn sie dies wünschen, also ist es nicht das, was Sie brauchen.

Haben Sie eine bestimmte Frage oder suchen Sie jemanden, der Ihnen mitteilt, wie Sie Ihre App beim Drücken der Soft- / Hardware-Ruftaste aufrufen?

Anscheinend benötigen Sie ACTION_CALL_BUTTON – http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL_BUTTON

Beziehen Sie sich auf diese Antwort von arekolek .

Dies ist der richtige Weg, um einen InCallService durch eine Drittanbieter-App zu erweitern, die den Systemstandardwähler und InCallScreen ersetzt, nachdem der Benutzer die Aufforderung beim Start akzeptiert hat.

Er bietet auch eine funktionierende Beispiel-App in Kotlin (Bonuspunkte).

Bitte upvote seine Antwort dort, ich verdiene kein Verdienst für seine Arbeit.

Hinweis: functioniert nur für API 23+ und benötigt möglicherweise zusätzliche Berechtigungen in API 26