Вибрация устройства Android Wear при получении уведомления

Я пытаюсь разработать приложение для Android и Android Wear (Wear OS). Я создаю Notification с мобильного на часы.

notification = new NotificationCompat.Builder(context)
                    .setSmallIcon(icon)
                    .setVibrate(new long[]{1000, 1000, 1000, 1000, 1000, 1000})
                    .setContentTitle(title)
                    .setContentText(content)
                    .setStyle(bigStyle.bigText(content))
                    .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), background))
                    .build();

В манифесте часов я установил:

<uses-permission android:name="android.permission.VIBRATE"/>

К сожалению вибрации нет. Как я могу это исправить?

Спасибо.


person Samy Sup    schedule 14.10.2014    source источник
comment
Это неожиданно, но когда я снял часы с док-станции, они начали вибрировать. Я думаю, что это блокирует вибрации. Надеюсь, это будет полезно   -  person Samy Sup    schedule 25.07.2017


Ответы (2)


 .setDefaults(Notification.DEFAULT_ALL)

Эта строка кода заставит износ просыпаться и вибрировать.

person android enthusiast    schedule 30.10.2014

Я хотел бы добавить еще 1 обновленный ответ для SDK 26 и выше. Я провел много часов, пытаясь определить, почему мои уведомления не вибрируют на часах Android Wear.

В конце концов я заметил, что кто-то установил приоритет канала уведомлений на IMPORTANCE_MIN.

if (Build.VERSION.SDK_INT >= 26) {
    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationChannel notificationChannel = new NotificationChannel(Config.NOTIFICATION_CHANNEL_ID, Config.NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_MIN);
    notificationManager.createNotificationChannel(notificationChannel);
}

Чтобы решить проблему, я сделал следующее:

  • Удалил приложение с телефона
  • Изменен приоритет на ВЫСОКИЙ [Хотя я подозреваю, что НОРМАЛЬНЫЙ также будет работать]
  • Переустановил приложение

Обновленный код:

NotificationChannel(Config.NOTIFICATION_CHANNEL_ID, Config.NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH);

Примечание. Вам также необходимо убедиться, что ваши значения по умолчанию верны, как указал «Android энтузиаст» в своем предыдущем ответе.

Надеюсь, это убережет кого-то от расследования.

person Elletlar    schedule 13.02.2019