开发者社区 问答 正文

Android推送消息,在关闭App后 收到推送,但播放自定义铃声没有声音

关闭App后,能收到推送,但收不到铃声。 我尝试了在onMessage回调中,播放本地铃声以及在初始化NotificationManager时,设置铃声。这两种方式在app开启时,都能收到自定义铃声。在app关闭后,依然能收到消息,但收不到铃声了。

展开
收起
1645901697231424 2020-11-27 19:25:48 1000 分享 版权
阿里云 AI 助理回答

要解决您遇到的问题,即在App关闭状态下能收到推送消息但无法播放自定义铃声,可以按照以下步骤进行排查和配置:

问题背景

用户在Android设备上使用阿里云移动推送服务时,发现当应用程序处于后台或关闭状态时,虽然能够接收到推送的消息,但是通知铃声未能正常播放。

解决方案步骤

  1. 确保NotificationChannel配置正确

    • 对于Android 8.0(API级别26)及以上版本,需要为应用的通知创建NotificationChannel。请确保在您的应用中已经正确设置了带有自定义声音的NotificationChannel。这应该在应用首次启动时完成,示例如下:
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
       NotificationChannel channel = new NotificationChannel("YOUR_CHANNEL_ID", "Channel name", NotificationManager.IMPORTANCE_DEFAULT);
       channel.enableVibration(true);
       channel.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getPackageName() + "/" + R.raw.your_sound), AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE).build());
       NotificationManager manager = getSystemService(NotificationManager.class);
       manager.createNotificationChannel(channel);
      }
      
    • 确保YOUR_CHANNEL_ID与发送推送消息时指定的通道ID一致,并且R.raw.your_sound是您放置在资源文件夹中的音频文件路径。
  2. 检查Manifest权限

    • 确保您的AndroidManifest.xml文件中包含了必要的权限,特别是与通知相关的权限:
      <uses-permission android:name="android.permission.WAKE_LOCK"/>
      <uses-permission android:name="android.permission.VIBRATE"/>
      
  3. 推送消息设置

    • 当通过阿里云控制台或者API发送推送消息时,确保在消息体中正确指定了之前创建的NotificationChannel ID,并且如果需要自定义声音,请在消息内容中携带相应的字段来指定声音资源。
  4. 检查系统设置

    • 用户设备上的系统设置也会影响通知的显示和声音播放。请确认用户的设备没有将应用的通知静音,或在“勿扰模式”下运行。
  5. 测试不同场景

    • 分别在应用前台、后台以及完全关闭的状态下进行测试,以确定问题的具体情境。

注意事项

  • 重要提示:确保在所有涉及通知处理的地方都使用了正确的NotificationChannel。
  • 最佳实践:建议在应用内提供一个设置选项,让用户自主选择是否开启通知声音,这样可以提高用户体验并减少因系统限制导致的问题。

参考文献

阿里云移动推送SDK接入文档中关于Android 8.0以上设备接收不到推送通知的解决方案部分提供了NotificationChannel的配置指导。

通过上述步骤,您可以针对性地解决App关闭后接收推送消息时铃声不播放的问题。如果问题依旧存在,建议进一步检查日志信息,或参考阿里云移动推送的官方文档和常见问题排查指南,以获取更详细的诊断和解决策略。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答