模拟器上没有提示音

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 设置 -> 声音来增加铃声音量。

【讨论】:

以上是关于模拟器上没有提示音的主要内容,如果未能解决你的问题,请参考以下文章

模拟器中没有 Touch ID / Face ID 提示

爬取抖音某个博主下面的全部视频

Python自动化抖音自动刷视频

mac系统上怎么运行安卓模拟器

安卓模拟器为啥没网络,谁知道?

vs2022创建模拟器失败