Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo proporcionar vibraciones personalizadas en las llamadas entrantes específicas

El programa funciona de esta manera: el usuario tiene una lista de números de teléfono, para los que el teléfono móvil sólo podía vibrar en una llamada entrante cuando ninguna otra aplicación del sistema proporcionara vibración (como en modo silencio). Sé que esto es de alguna manera contra las reglas, para que una aplicación debe respetar la configuración de los usuarios, pero la aplicación se limita a algunos usuarios con esta necesidad. He intentado dos maneras pero ninguna de ellas es satisfactoria:

  1. Escuchar el estado de telefonía y activar directamente el servicio de vibración con mi propio patrón (con Vibrator.vibrate() ). Este método es eficaz sin llamadas entrantes pero al azar efectivo cuando el teléfono está en estado CALL_STATE_RINGING y supongo que es debido al conflicto con la aplicación de todo el sistema que realmente maneja la vibración en la llamada entrante.

  2. Juzga si el teléfono móvil está vibrando en una llamada entrante (con AudioManager.shouldVibrate() ) y decide si cambia los ajustes de vibración (con AudioManager.setRingerMode() y AudioManager.setVibrateSetting() ). Si los ajustes de vibración son cambiados por mi aplicación, deben ser restaurados una vez que el teléfono móvil vuelva al estado CALL_STATE_IDLE . Este método, sin embargo, todavía no funciona a veces, sin ningún signo de la razón.

Espero que alguien pueda dar algunos consejos sobre este tema. Los comentarios sobre estas dos maneras u otros sugieren son bienvenidos.

  • Vibrar onclick
  • Vibración en Xamarin Android
  • ¿Cómo activar la vibración en la entrada de sonido?
  • ¿Cómo puedo hacer vibrar mi dispositivo?
  • ¿Cómo hacer vibrar un dispositivo Android?
  • ¿Cómo puedo hacer animación vibrante para ImageView
  • Android Vibrar en la tostada (Homer: Mmmm vibrar en la tostada)
  • Android: ¿Notification.DEFAULT_VIBRATE requiere permiso de vibración?
  • One Solution collect form web for “Cómo proporcionar vibraciones personalizadas en las llamadas entrantes específicas”

    Necesita jugar con dos ajustes para que su teléfono vibre. El primero es el modo de sonido que se debe configurar mediante AufioManager:

     AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); audioManager.setRingerMode(targetSoundMode); 

    La segunda parte no está debidamente documentada y creo que esta es la parte que falta de su código:

     String VIBRATE_IN_SILENT_SETTING_NAME = "vibrate_in_silent"; Settings.System.putInt(getContentResolver(), VIBRATE_IN_SILENT_SETTING_NAME, 1); 

    Utilice 1 para activar la vibración y 0 para desactivar la vibración.

    Para entender completamente cómo debe trabajar con los ajustes de vibración y el modo de echar un vistazo al siguiente enlace: http://hi-android.info/src/com/android/settings/SoundSettings.java.html

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.