在模拟器上没有通知声音

时间:2018-12-31 09:58:06

标签: android notifications

我在Android上遇到notifications的问题时发疯:在开发项目时,突然API 26及更高版本的模拟器不再播放通知声音,

例如需要通道的API。 当然,我已经建立了一个频道,并且之前效果很好!我已经重新安装了该应用程序,删除了频道,甚至用API 27设置了另一个AVD,结果相同:没有声音! (该通知确实会弹出)

很显然,我已经检查了通知声音是否已启用,对于该特定频道,一切似乎都正常,只是没有声音。 如果我使用以下方法进行测试:

RingtoneManager.getRingtone(context, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)).play();

它可以正常工作,因此没有硬件问题。 在您不需要频道的APIs前26级以下位置,声音会播放。

有人遇到同样的问题吗?

//make the channel
//The Config class is imported and the constants resolved, not the problem


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
            NotificationChannel channel = new NotificationChannel(
                    Config.CHANNEL_1_ID,
                    Config.CHANNEL_1_NAME,
                    NotificationManager.IMPORTANCE_HIGH);

            channel.setDescription(Config.CHANNEL_1_DESC);
            channel.enableLights(true);
            channel.enableVibration(true);
            channel.setShowBadge(true);

          NotificationManager manager = getSystemService(NotificationManager.class);
            manager.createNotificationChannel(channel);
}

// send notification
 NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(context, Config.CHANNEL_1_ID)
                    .setSmallIcon(R.drawable.ic_notifications_black_24dp)
                        .setContentTitle(title)
                        .setContentText(body)
                        .setAutoCancel(false)
                        .setColor(context.getResources().getColor(R.color.colorPrimary))
                        .setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND | Notification.FLAG_SHOW_LIGHTS)
                        .setPriority(NotificationCompat.PRIORITY_HIGH);

        NotificationManagerCompat mNotificationMgr = NotificationManagerCompat.from(context);
        mNotificationMgr.notify(1, mBuilder.build());

3 个答案:

答案 0 :(得分:2)

似乎我找到了答案:我必须通过模拟器上的“完成设置Android SDK”向导。单击所有内容的“跳过”,现在看来可以再次使用。 够奇怪的是,我最初并没有这样做,但是通知仍然按预期工作了……du!

答案 1 :(得分:0)

对我来说,问题是模拟器上的铃声音量。显然,默认情况下该值为零,并且顶部栏上没有任何指示。同样,当按下音量键时,它将打开媒体音量而不是铃声音量!我必须通过Android设置->声音来增加铃声音量。

答案 2 :(得分:0)

在Pie 9.0(api 28)上,您需要完成设置过程。完成后,通知通道的声音将运行良好。对于仿真器和物理设备都是相同的。 如果您尚未执行此操作,则无论重要性级别如何,设备上的所有通知都将以静默方式运行。