【问题标题】:Vibrate an Android Wear device on notification在收到通知时振动 Android Wear 设备
【发布时间】:2014-10-14 14:58:02
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 这出乎意料,但当我从底座上取下手表时,手表开始振动。我认为它可以阻止振动。希望对您有所帮助

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


【解决方案1】:
 .setDefaults(Notification.DEFAULT_ALL)

这行代码会让穿戴者唤醒并振动。

【讨论】:

    【解决方案2】:

    我想为 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 发烧友”在他之前的回答中指出的那样。

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

    【讨论】:

      猜你喜欢
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多