Galaxy S21上应用自定义通知音不生效问题求助
三星Galaxy S21自定义通知音播放失效问题
我开发了一款可通过日历事件触发播放自定义通知音的应用,该应用在我的旧手机上运行完全正常,但在新的Galaxy S21上仅播放系统默认通知音,无法播放自定义音频。我在运行Android 11(S21宣称搭载的系统版本)的AVD模拟器上测试该应用,运行正常。自定义音频文件存在于S21设备中,且可通过音乐播放器正常播放。
此前有同类历史问题给出的解决方案是重启设备,我尝试后问题并未解决。
触发通知的代码如下:
private void emitNotification(String smallText, String bigText, String path) { RemoteViews layout = new RemoteViews( "uk.co.yahoo.p1rpp.calendartrigger", R.layout.notification); layout.setTextViewText(R.id.notificationtext, bigText); DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT); layout.setTextViewText(R.id.notificationtime, df.format(System.currentTimeMillis())); Notification.Builder NBuilder = new Notification.Builder(this) .setSmallIcon(R.drawable.notif_icon) .setContentTitle(smallText) .setContent(layout); if ((path != null) && !path.isEmpty()) { Uri uri = new Uri.Builder().path(path).build(); AudioAttributes.Builder ABuilder = new AudioAttributes.Builder() .setContentType(AudioAttributes.CONTENT_TYPE_UNKNOWN) .setLegacyStreamType(AudioManager.STREAM_NOTIFICATION); NBuilder.setSound(uri, ABuilder.build()); } // Show notification NotificationManager notifManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notifManager.notify(notifyId++, NBuilder.build()); }
完整源码已上传至GitHub的rparkins999/CalendarTrigger仓库的fix3.3分支。
我已在Git仓库中上传了构建完成的APK,大家可以尝试在其他设备上安装测试。你也可以自行从源码构建:由于我未公开我的私有签名密钥,你需要在项目根目录的相对路径下新建../Keys/Keystore.properties文件。
复现步骤
- 运行应用,授予其请求的所有权限,点击「NEW EVENT CLASS」,为事件类命名后点击Create,此时你会看到包含多个按钮的页面,可通过按钮定义事件类的属性。
- 点击「Event starts action(s) for class ...」,页面会展示应用支持的各类操作(部分功能暂不可用)。依次点击「Show a notification」、「Play a sound」、「Browse for a sound file」,此时会调出文件浏览器。
- 选中音频文件后会返回上一级页面,原先的「Browse for a sound file」按钮会替换为你选中的音频文件路径。点击返回键回到按钮列表页,再点击「Immediate event of class ...」,应用理应播放你选中的自定义音频。
该流程在模拟器上运行正常,但在S21上仅播放系统默认通知音。
按上述配置完成的事件类会对所有日历事件触发通知,你可以通过删除该事件类,或在事件类定义页为日历事件设置触发条件来关闭该行为,两类操作均有对应的功能按钮。
我不确定该问题是S21的系统bug,还是由我未找到的某个隐藏设置导致。恳请大家提供帮助,尤其是可以告知该应用在其他运行Android 11的设备上是否可以正常运行,若能提供修复方案或临时解决方案就更好了!
最新更新
我刚刚安装了S21的最新系统更新,现在问题更严重了:自定义通知音相关的通知完全没有任何声音输出。
内容的提问来源于stack exchange,提问作者Richard Parkins
相关产品推荐
相关产品推荐

