【问题标题】:remove vibration from notifications从通知中删除振动
【发布时间】:2013-10-15 22:12:35
【问题描述】:

我想禁用通知振动,但我无法使其工作。我想让通知声音被听到,但手机不应该振动。这是我的代码:

audioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, 2, 0);
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
audioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION, AudioManager.VIBRATE_SETTING_OFF);

但当我收到使用默认声音设置的消息或其他通知时,手机会振动。谁能告诉我如何实现我的目标?

【问题讨论】:

  • 我遇到了同样的问题,我无法解决。你在哪里?这确实是 Android 编程中的一个漏洞(就像许多其他人一样)
  • @Ton 不,我没能解决这个问题
  • 检查stackoverflow.com/questions/24008764/…现在是否可以修复。

标签: android android-notifications android-audiomanager vibration


【解决方案1】:

我认为它们不会停止,因为您在通知代码中使用"setDefaults(Notification.DEFAULT_ALL)",所以如果您需要停止振动和声音删除此行,或者如果您需要使用默认声音并停止振动我认为您必须使用@ 987654322@等...

【讨论】:

    【解决方案2】:

    我认为,您不应该直接使用AudioManager。相反,请使用Notification APIs:

    if (isVibrationEnabled) {
        notification.defaults |= Notification.DEFAULT_VIBRATE;
    }
    

    【讨论】:

    • 这是否适用于其他应用程序的通知?我没有发送通知,我只想禁用所有通知的振动
    • 除非您将设备设置为静音模式(为此,请使用audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);),否则您无法为所有应用通知禁用振动。虽然,有些应用程序会覆盖静音模式并使用振动(当然,它们中的大多数都遵循用户设置)。
    • 所以我想更改通知的此设置,并且我知道这些设置仅适用于遵循用户设置的应用程序。但我希望用户听到通知声音,但禁用振动,但该代码不起作用,我不知道为什么
    • 可能是因为 "setVibrateSetting() --- 此方法在 API 级别 16 中已弃用。 应用程序应根据当前振铃模式维护自己的振动策略可以通过getRingerMode()查询。”
    【解决方案3】:

    您必须从通知 api 中删除振动代码:

        notification.defaults |= Notification.DEFAULT_VIBRATE;
    

    【讨论】:

    • 他不是在谈论他自己的通知
    猜你喜欢
    • 2011-04-05
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2015-04-24
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多