8

我正在尝试为 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"/>

不幸的是,没有振动。我该如何解决?

谢谢。

4

2 回答 2

9
 .setDefaults(Notification.DEFAULT_ALL)

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

于 2014-10-30T22:03:39.117 回答
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);
}

为了解决这个问题,我做了以下事情:

  • 从手机上卸载了应用程序
  • 将优先级更改为 HIGH [虽然我怀疑 NORMAL 也可以]
  • 重新安装了应用程序

更新代码:

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

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

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

于 2019-02-13T23:35:19.683 回答