【问题标题】:Android Marshmallow sound only Notification?Android棉花糖只有声音通知?
【发布时间】:2016-11-01 01:06:42
【问题描述】:

在 Lollipop 及以下版本中,您可以通过在构建时省略图标、内容标题和内容文本来轻松发送仅声音通知,如下所示:

NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());
builder.setSound(Uri.parse(ringtone));
notificationManager.notify(9998, builder.build());

在 Marshmallow 中,我必须至少包含一个图标,否则我会收到“没有有效的小图标”异常。我想使用通知系统,但并不总是想在通知栏中显示通知。这对 Marshmallow 是否可行,或者我是否应该改为使用媒体播放器播放通知声音,即使有时我或用户可能想要显示通知?

【问题讨论】:

  • “我是否应该改为使用媒体播放器播放通知声音”——是的,请。 “即使有时我或用户可能想要显示通知?” -- 使用if 在你的代码中进行分支,当你愿意显示一个图标时使用Notification,或者在你想要仅音频输出的情况下使用MediaPlayer

标签: android android-notifications android-6.0-marshmallow


【解决方案1】:

我在某处读到文档说图标是必需的,即使在 Lollipop 及以下省略时它也不会引发异常。在研究了使用 MediaPlayer 之后,我最终决定使用 RintoneManager 来播放它。我正在使用通知声音,所以不妨节省一些打字时间并快速完成

try {
    RingtoneManager.getRingtone(getApplicationContext(), Uri.parse(ringtone)).play();
} catch (Exception e) {
    e.printStackTrace();
}

为了触发声音,我会在需要实际通知时保存通知。我已经在计划使用 if,这取决于通知是否应该出现在通知栏中。

【讨论】:

  • 您能否确认这种方法是否也适用于 Marshmallow ?我正在运行相同的代码,它可以在除 Android M 之外的所有设备上完美运行。它根本不会播放任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多