В моей службе переднего плана я получаю уведомления, и это работает отлично. Единственная проблема в том, что мои часы не вибрируют и не издают никаких звуков, когда я получаю уведомление. Я пытался настроить вибрацию на NotificationChannel
или Notification
, но ни один из них не работает. Устройство представляет собой часы Huawei Watch 2.
Каналы уведомлений:
private void createNotificationChannels() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel serviceChannel = new NotificationChannel(
CHANNEL_ID,
"Service Channel",
NotificationManager.IMPORTANCE_LOW
);
serviceChannel.setDescription("Foreground Service");
NotificationChannel messageChannel= new NotificationChannel(
message_CHANNEL_ID,
"messages Channel",
NotificationManager.IMPORTANCE_HIGH
);
messageChannel.setDescription("message Channel");
messageChannel.enableVibration(true);
messageChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
messageChannel.setVibrationPattern(new long[] {2000});
NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(serviceChannel);
manager.createNotificationChannel(messageChannel);
}
Уведомления от сервиса:
private void runNotification(Datamodel data)
{
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
Notification notification = new NotificationCompat.Builder(this, messageChannel)
.setSmallIcon(R.drawable.alarm)
.setContentTitle(data.getline1())
.setContentText(data.getline2())
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(Html.fromHtml(data.toString(), FROM_HTML_MODE_COMPACT)))
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setColor(Color.parseColor("#009999"))
//.setSound(defaultSoundUri)
//.setCategory(NotificationCompat.CATEGORY_ALARM)
//.setVibrate(new long[]{2000})
.build();
notificationManager.notify(NOTIFICATION_ID, notification);
NOTIFICATION_ID++;
}
Манифест:
<uses-feature android:name="android.hardware.type.watch" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.VIBRATE"/>