Aplicación de marcador Android

Estoy averiguando una forma de reemplazar la aplicación de marcación predeterminada de mi aplicación de marcación personalizada, pero no entiendo cómo lograr esto.

Esto es lo que quiero

  • Crear una interfaz de usuario de marcador personalizada
  • Mi aplicación se llama cuando se presiona el hardware del botón de llamada o el de Android.
  • La aplicación también se puede llamar desde la pantalla de contacto

Me refiero a la cadena final pública estática ACTION_DIAL .

    1. Crea una aplicación de Android simple (nuestro marcador). Para llamar realmente a alguien, solo necesitas ese método:

      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. Dale permiso a tu aplicación para llamar a AndroidManifest

        
    3. Establecer en AndroidManifest intención que dice a su teléfono para usar su aplicación cuando necesita un marcador

    Cuando alguien presione el botón de llamada:

          

    Cuando alguien dispara un URI:

             

    Esto funcionó para mí:

                  

    El bash ACTION_DIAL parece permitirle pasar un número para llamar al marcador estándar, listo para que el usuario lo llame, si así lo desean, entonces no es lo que necesita.

    ¿Tiene una pregunta específica o está buscando a alguien que le diga cómo implementar su aplicación que se llama cuando se presiona el botón de llamada de software / hardware?

    Parece que necesitas ACTION_CALL_BUTTON – http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL_BUTTON

    Consulte esta respuesta por arekolek .

    Esta es la forma correcta de extender InCallService por una aplicación de terceros, que reemplazará el marcador predeterminado del sistema y InCallScreen después de que el usuario acepte el aviso al inicio.

    También proporciona una aplicación de muestra en funcionamiento en Kotlin (puntos de bonificación).

    Por favor, vota su respuesta allí, no merezco crédito por su trabajo.

    Nota: solo funcionará para API 23+, y podría necesitar permisos adicionales en API 26