在通知时振动Android Wear设备

时间:2014-10-14 14:58:03

标签: android android-notifications wear-os android-vibration

我正在尝试开发一款适用于Android和Android的应用程序。我创建了从手机到手表的通知。

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"/>

不幸的是,我没有任何振动。

我该怎么办?

感谢。

2 个答案:

答案 0 :(得分:9)

 .setDefaults(Notification.DEFAULT_ALL)

这行代码会使磨损唤醒并振动。

答案 1 :(得分:0)

我想为SDK 26及以上版本添加1个更新的答案。我花了很多时间试图确定为什么通知不会在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);
}

为解决此问题,我执行了以下操作:

  • 从手机上卸载了应用程序
  • 将优先级更改为“高” [尽管我怀疑NORMAL也可以使用
  • 重新安装了应用

更新代码:

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

注意:您还需要确保您的默认设置正确无误,就像“ Android发烧友”在他先前的回答中指出的那样。

我希望它可以使某人免于调查。