Vibrar en la notificación push
En primer lugar he comprobado todos esos enlaces:
- Cómo llamar a Vibrador dentro de un servicio en android
- Notificaciones de Android y vibra desde el servicio
- Android GCM enciende las luces
Pero no puedo lograr que mi teléfono vibre cuando reciba una notificación push. Aquí va mi código:
- ¿En Blackberry el jugador androide apoya notificaciones del empuje o C2dm?
- El dispositivo deja de recibir emisiones de GCM hasta que la red se conmuta
- Notificación Push de Android C2DM
- En la notificación push mostrar una actividad / popup, en lugar del mensaje en la barra de estado
- Después de actualizar los servicios de reproducción de Google a las notificaciones de envío 8.4.0 mostradas por ellos mismos
PushReceiver
public class PushReceiver extends FirebaseMessagingService { public PushReceiver() { } @Override public void onMessageReceived(RemoteMessage remoteMessage) { if(remoteMessage.getData() != null){ Map<String, String> data = remoteMessage.getData(); sendNotification(data.get("message")); } else{ if(remoteMessage.getNotification() != null) { sendNotification(remoteMessage.getNotification().getBody()); } } } private void sendNotification(String messageBody) { Intent intent = new Intent(this, BaseActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT); Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_done_all_24dp) .setContentTitle(getString(R.string.str_notification_order_ready)) .setContentText(messageBody) .setSound(defaultSoundUri) .setContentIntent(pendingIntent); notificationBuilder.setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 }); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(ConstantUtils.NOTIFICATION_ID_ORDER_READY, notificationBuilder.build()); } }
Permiso
<uses-permission android:name="android.permission.VIBRATE"/>
Pruebas
Dispositivo: Nexus 5
Versión de Android: 6.0.1
¿Hay algún tipo de hechicería desconocida que debo hacer para que funcione?
- Android push notificación cómo reproducir el sonido predeterminado
- Push notificación de UrbanAirship no funciona con servidor en vivo (es decir, con la clave de producción) en android
- ¿Qué es la parte "Autorización" de la solicitud de post http del mensaje de Google Firebase Downstream?
- Descartar notificación actual en Acción pulsada
- ¿Es necesaria una conexión a Internet en vivo para la notificación por push?
- Tengo esta respuesta del servidor GCM {"success": 1} Pero la notificación no llega al dispositivo
- ¿Cómo suprimir la notificación push se muestra cuando la aplicación se está ejecutando?
- Notificación Push de Google Cloud Messaging
También puede utilizar setDefaults (int defaults)
en su instancia NotificationCompat.Builder
que le proporciona el sonido predeterminado del sistema, la vibración y las luces para su notificación.
El valor debe ser uno o más de los siguientes campos combinados con bitwise o (|): DEFAULT_SOUND , DEFAULT_VIBRATE , DEFAULT_LIGHTS .
Para todos los valores predeterminados, utilice DEFAULT_ALL .
Ex. Según su código usted está fijando el sonido del defecto así que, si usted quiere fijar el sonido y vibrar por defecto:
notificationBuilder.setDefaults(DEFAULT_SOUND | DEFAULT_VIBRATE);
Si desea que todos los valores predeterminados, puede lograrlo mediante la configuración notificationBuilder.setDefaults(-1)
, se considera como valor DEFAULT_ALL.
Consulte android doc para setDefaults .
EDITAR:
La vibración tiene un retardo de 1000 ms. Si ajusta el primero en 0, se apagará instantáneamente. Es un patrón de {delay, vibration, sleep, vibrate, sleep}
// Each element then alternates between delay, vibrate, sleep, vibrate, sleep notificationBuilder.setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000});
Esto vibra el teléfono:
Vibrator v = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE); // Vibrate for 500 milliseconds v.vibrate(500);
Cuando llame a la notificación también llame a esto
- ¿Cómo cambiar el tema de color de la aplicación Android?
- Tutorial de Android Dev: ¿Qué es `Infinity` en ViewPager Sample?