Comment fournir des vibrations personnalisées sur des appels entrants spécifiques

Le programme fonctionne comme ceci: l'utilisateur dispose d'une liste de numéros de téléphone pour lesquels le téléphone portable pourrait vibrer sur un appel entrant uniquement lorsqu'aucune autre application à l'échelle du système ne produit des vibrations (par exemple en mode muet). Je sais que cela est en quelque sorte contre les règles, car une application doit respecter les paramètres des utilisateurs, mais l'application est limitée à certains utilisateurs avec ce besoin. J'ai essayé deux manières, mais aucun d'entre eux n'est satisfaisant:

  1. Écoutez l'état de la téléphonie et déclenchez directement le service de vibration avec mon propre motif (avec Vibrator.vibrate() ). Cette méthode est efficace avec aucun appel entrant encore au hasard lorsque le téléphone est dans l'état CALL_STATE_RINGING et je suppose que c'est en raison du conflit avec l'application système qui gère les vibrations lors de l'appel entrant.

  2. Quels périphériques Android prennent en charge l'accessoire ADK / open
  3. Est-il possible d'annuler / arrêter un téléchargement commencé à utiliser DownloadManager?
  4. Prenez une capture d'écran avec un dialogue
  5. Comment attacher GestureDetector à un ListPreference?
  6. Créer un fichier aar dans Android Studio
  7. TLS 1.1, 1.2 dans WebView pour Android <= 4.3
  8. Pensez si le téléphone portable vibre sur un appel entrant (avec AudioManager.shouldVibrate() ) et décide de modifier les paramètres de vibration (avec AudioManager.setRingerMode() et AudioManager.setVibrateSetting() ). Si les paramètres de vibration sont modifiés par ma demande, ils doivent être restaurés une fois que le téléphone portable est de retour à l'état CALL_STATE_IDLE . Cette méthode, cependant, ne fonctionne toujours pas parfois, sans aucun signe de la raison.

J'espère que quelqu'un pourrait donner des conseils sur cette question. Les commentaires sur ces deux façons ou d'autres suggestions sont les bienvenus.

  • Texte du bouton Android et html
  • Une liste d'API Android nécessitant certaines autorisations Android
  • Comment mettre à jour TileOverlay sans scintillement?
  • Le paramètre "Applications protégées" sur les téléphones Huawei, et comment le gérer
  • Android.view.WindowLeaked exception
  • Problème de contrôle de connectivité sur Internet Android
  • One Solution collect form web for “Comment fournir des vibrations personnalisées sur des appels entrants spécifiques”

    Vous devez jouer avec deux paramètres pour que votre téléphone vibre. Le premier est le mode audio qui doit être défini en utilisant AufioManager:

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

    La deuxième partie n'est pas correctement documentée et je crois que c'est la partie manquante de votre code:

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

    Utilisez 1 pour faire vibrer et 0 pour faire vibrer.

    Pour bien comprendre comment vous devez travailler avec les paramètres et le mode de vibration, regardez le lien suivant: http://hi-android.info/src/com/android/settings/SoundSettings.java.html

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.