2014-12-09 33 views
14

ho usato AudioManager.setRingerMode() per gestire il volume del dispositivo nella mia applicazione utilizza:alternativa per AudioManager.setRingerMode() in Android 5.0 (API 21)

  • AudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT) per spegnere la vibrazione e il suono.
  • AudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE) per disattivare il suono e attivare la vibrazione.
  • AudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL) per accendere il suono e attivare la vibrazione.

In altre parole, sono riuscito a ottenere il controllo del volume del dispositivo e raggiungere tutte le "modalità".

Tuttavia, non è possibile gestire tutte le modalità del volume del dispositivo in Android 5.0 utilizzando solo lo AudioManager.setRingerMode.

Come per il documentation:

imposta il dispositivo per RINGER_MODE_SILENT fa sì che il dispositivo per inserire il nuovo modo di priorità. Il dispositivo lascia la modalità di priorità se lo si imposta su RINGER_MODE_NORMAL o RINGER_MODE_VIBRATE.

Come posso gestire tutti i modi (nessuno, vibrazione in priorità, suono in priorità, vibrazione in tutto, suono in tutto) del volume del dispositivo in Android 5.0?

+0

quale notifica intendi? stai usando Gestione notifiche per crearli? – 7383

+0

Intendo le notifiche sonore del dispositivo. Come posso raggiungere "pieno silenzio" dal codice? – Eldoth

risposta

0

Con le nuove 5.0 API ci sono un sacco di metodi che possono essere utilizzati per impostare la suoneria/vibrazione.

setVibrate (long[] pattern) 

Questo metodo controlla la vibrazione del dispositivo. Prende un lungo in cui il primo valore indica il numero di milliseconds da attendere prima di accendere lo vibrator. Maggiori dettagli:

http://developer.android.com/reference/android/os/Vibrator.html#vibrate(long[], int)

http://developer.android.com/reference/android/app/Notification.Builder.html#setVibrate(long[])

setDefaults (int defaults) 

Questo imposta le proprietà notifiche cioè SOUND, VIBRATE, ALL ecc ecc

Dalla documentazione:

Il valore deve essere uno o più dei seguenti campi combinati con bit a bit oppure: DEFAULT_SOUND, DEFAULT_VIBRATE, DEFAULT_IGHTS.

http://developer.android.com/reference/android/app/Notification.Builder.html#setDefaults (default int)

Spero che questo aiuti.

+0

Non sto tentando di inviare una notifica audio o una vibrazione. La domanda riguarda il controllo del suono del dispositivo. In poche parole, come posso impostare il controllo del suono del dispositivo su "nessuno"? – Eldoth

+0

http://developer.android.com/reference/android/media/AudioManager.html#shouldVibrate(int) ..controlla la prima riga del link..Google consiglia ad ogni app di gestire il proprio suono/vibrazione invece di provare a controllare il volume del dispositivo stesso. – user2511882

+0

Ok, sono d'accordo che non è una buona pratica cercare di controllare il volume del dispositivo. Ma supponiamo che voglio provare a controllare questo. C'è un modo? – Eldoth