模拟器上没有提示音
Posted
技术标签:
【中文标题】模拟器上没有提示音【英文标题】:No notification sound on the emulator 【发布时间】:2018-12-31 09:58:05 【问题描述】:我对 android 上的 notifications
的问题感到抓狂:当我在开发我的项目时,突然模拟器不再为 API
26 及更高版本播放通知声音,
例如需要通道的 API。
当然,我已经建立了一个频道,并且之前效果很好!我重新安装了应用程序,删除了频道,甚至设置了另一个带有API
27 的 AVD,同样的结果:没有声音! (确实会弹出通知)
显然,我已经检查了通知声音是否已启用,对于这个特定的频道,一切似乎都很好,只是没有声音。 如果我使用以下方式进行测试:
RingtoneManager.getRingtone(context, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)).play();
它可以正常工作,所以没有硬件问题。
在不需要频道的较低 APIs
pre 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());
【问题讨论】:
发布代码... 正如我所说,它突然停止工作,没有触摸通知代码。以前工作过。此外,当我在应用程序处于后台时通过 Firebase 发送通知时,系统会处理通知而不是应用程序。相同的行为:没有声音。还下载了一些用于通知通道的通用示例项目:没有声音。我认为模拟器有问题。 【参考方案1】:似乎我找到了答案:我必须通过模拟器上的“完成设置您的 Android SDK”向导。单击“跳过”所有内容,现在它似乎又可以工作了。 奇怪的是,我最初并没有这样做,但通知仍然按预期工作......呃!
【讨论】:
Android Studio 3.3.2 上的 Pixel API 28(带有 Google Play 的 Android 9)AVD 确实是这种情况。 天哪。花了几个小时调试这种无意义的问题..【参考方案2】:在 Pie 9.0 (api 28) 上,您需要完成设置过程。完成后,通知频道的声音会运行良好。模拟器和物理设备都是一样的。 如果您还没有这样做,则设备上的所有通知都将以静默方式运行,无论重要性级别如何。
【讨论】:
您好,谢谢您的回答。请详细说明“设置过程”。你是什么意思?这个过程包括什么?步骤。 您将看到此通知,它显示完成设置的向导:1.i.ibb.co/ctXHw6P/Screenshot-1563463541.png 2.i.ibb.co/gVKxnNy/Screenshot-1563463524.png【参考方案3】:对我来说,问题在于模拟器上的铃声音量。显然,默认情况下它为零,顶部栏上没有任何指示。此外,当按下音量键时,它会打开媒体音量而不是铃声音量!我不得不通过 android 设置 -> 声音来增加铃声音量。
【讨论】:
以上是关于模拟器上没有提示音的主要内容,如果未能解决你的问题,请参考以下文章