自定义Android通知声音

2024-03-16

我正在尝试在我的应用程序中实现自定义通知声音。 我编写了以下代码,但应用程序仅播放默认声音,而不播放我在原始文件夹中添加的自定义声音。收到通知后,日志甚至不会抛出任何错误或异常来说明为什么不播放自定义声音。我尝试在网上搜索并尝试采用不同的方法但无济于事。 请让我知道我哪里出错了。

编辑:有人可以发布它的代码吗,我似乎找不到任何有效的东西

Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button = findViewById(R.id.notify);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel("MyCuS Notification", "My Notification", NotificationManager.IMPORTANCE_HIGH);
        NotificationManager manager = getSystemService(NotificationManager.class);
        AudioAttributes.Builder audioAttributes = new AudioAttributes.Builder()
                .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE);
        channel.setSound(Uri.parse("android.resources://" + getPackageName() + "/" + R.raw.bg_reminder_alarm),audioAttributes.build());
        manager.createNotificationChannel(channel);
    }

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this, "MyCuS Notification");
            builder.setContentTitle("MyTitle");
            builder.setContentText("TESTING");
            builder.setSmallIcon(R.drawable.ic_launcher_background);
            builder.setAutoCancel(true);
            builder.setSound(Uri.parse("android.resources://" + getPackageName() + "/" + R.raw.bg_reminder_alarm));
            NotificationManagerCompat managerCompat = NotificationManagerCompat.from(MainActivity.this);
            managerCompat.notify(1, builder.build());
        }
    });
}

编辑2:我尝试删除现有频道并发送通知来创建新频道,当新创建频道的描述在发送第二个通知后发生变化时,就好像该频道被覆盖或删除并创建了新的默认频道。


从 Android Oreo / 8 开始,Notificationsound 来自频道,并且只能在您第一次通过 channel.setSound() 添加频道时进行设置。 如果您想稍后更改它,您需要删除该频道,然后将其重新添加到系统中。不过,用户会收到有关该行为的警告(应用程序删除频道 X 次)。https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels

如果您希望每次都有自定义声音,则需要一个不带 Channelsound 的 ForegroundService 作为其前台通知 (setSound(null)),然后使用通知流上的 MediaPlayer 来播放自定义声音。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义Android通知声音 的相关文章

  • IE9-11 检测变换样式:preserve-3d

    我为一个项目制作了一个 3d 类型的菜单 自然 IE 会引起问题 因为 IE10 即使 3d 变换工作 也不支持变换样式 preserve 3d 我尝试了解决方法 通过对 3d 菜单容器的每个子元素应用变换 但至少可以说 动画看起来很糟糕
  • 文本溢出:省略号显示不同的字符

    我这里遇到了一些 CSS 问题 看这张图片 https www flickr com photos 125543025 N07 saved 1 在此图像中 我为文本 INTENSE TRAINING 添加了 CSS 样式 sample st
  • 如何制作过期/签名视频嵌入网址

    我是新来的 正在学习网络开发等等 我只知道如何将我的视频嵌入网站中 任何菜鸟都可以轻松获得源代码 他们也可以嵌入它 但在许多网站中 视频 src 均使用重定向器链接进行编码 例如 它会在一段时间后过期 在本例中是一天 我了解到这是一个签名网
  • Android Espresso 单击按钮时出现错误

    我正在尝试使用 espresso 框架为 Android 应用程序编写一些 UI 测试 现在我只是检查启动屏幕上是否存在所有元素 然后尝试单击登录按钮 单击按钮时 测试由于错误而失败 我似乎无法理解为什么会发生这种情况 我的测试代码是 Ru
  • Python 中的字符串slugification

    我正在寻找 slugify 字符串的最佳方法 蛞蝓 是什么 https stackoverflow com questions 427102 in django what is a slug 我当前的解决方案基于这个食谱 http code
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • xsi:type 属性搞乱了 C# XML 反序列化

    我使用 XSD exe 根据 XML 架构 xsd 文件 自动生成 C 对象 我正在反序列化 OpenCover 输出 但其中一个部分类未正确生成 这是导致异常的行
  • 一些基本的 PHP 问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是有一些基本的 php 问题来加深我对学习的理解 但我找不到简单的答案 我有一个 php ajax 应用程序 它生成 mysql
  • Azure Functions 计时器触发器线程安全

    我想知道是否有人知道如果您在 Azure 函数上设置了 Cron 设置 如果其任务执行时间超过 5 分钟 则每 5 分钟运行一次 会发生什么情况 它备份吗 或者我应该实现一个锁定功能 以防止某些东西 例如在循环中 处理先前调用已经处理的数据
  • svn 强制迁移

    我正在考虑将我们的 svn 代码库迁移到 perforce 看看谷歌搜索结果 我确实找到了两个具有相同功能的工具 P4转换ftp ftp perforce com pub perforce tools p4convert docs inde
  • java'assert'和'if(){}else exit;'之间的区别

    java和java有什么区别assert and if else exit 我可以用吗if else exit代替assert 也许有点谷歌 您应该记住的主要事情是 if else 语句应该用于程序流程控制 而assert 关键字应该仅用于
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac
  • React 错误:目标容器不是 DOM 元素

    我刚刚开始使用 React 所以这可能是一个非常简单的错误 但我们开始吧 我的html代码非常简单 load staticfiles
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用
  • PLS-00103:遇到符号“;”当预期出现以下情况之一时:

    我正在尝试插入用户安全问题的答案 以用于密码重置功能 Ellucian 横幅 v8 提供了一个用于运行此 API 的 API 我对他们的 API 非常陌生 从下面的错误消息来看 我还远远没有正确运行它 任何帮助表示赞赏 我尝试在 Oracl
  • 自定义字符串查询操作的 Linq to NHibernate 可扩展性?

    我希望能够在 NHibernate Linq 表达式中使用自定义字符串查询 举例来说 这只是一个例子 我希望能够选择包含属性的实体 该属性是特定字符串的字谜 var myEntities EntityRepository AllEntiti
  • Keystore getEntry 在 Android 9 上返回 NULL

    c我已对存储在 Android 密钥库中的登录密码进行了加密和解密 在 Android 9 上 我观察到应用程序在尝试解密密码时崩溃 我无法重现它 但拥有 Pixel 3 的用户是崩溃的设备之一 下面是我如何从密钥库解密密码 private
  • 计算包含字母/数字的行数

    我想要实现的目标很简单 但是解释起来有点困难 我不知道在 postgres 中这是否真的可能 我处于相当基础的水平 SELECT FROM WHERE LEFT JOIN ON HAVING 等等基本的东西 我正在尝试计算包含特定字母 数字
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁
  • 如何使用 dql 从数据表中获取唯一值?

    我有一个表 其中有一列存储了各种值 我想使用 dql 从该表中检索唯一值 Doctrine Query create gt select rec school gt from Records rec gt where rec city ci

随机推荐

  • 使用 ffmpeg 创建视频

    我有 100 张图像 PNG 我想使用这些图像创建一个视频 我为此使用 ffmpeg 库 使用命令行我可以轻松创建视频 但是我如何通过编码来做到这一点呢 任何帮助将不胜感激 pragma GCC diagnostic ignored Wde
  • 为什么我不应该对 TD(表格单元格)上的数字使用已弃用的align='right'?

    我指的是用于显示表格数据的表格的用法 例如 电子表格 重点关注numbers 我感觉并在用户体验中查看 https ux stackexchange com a 24073应该右对齐 格式正确 具有相同的小数位数 以方便求和 对于数字来说
  • 带组的 Google 柱形图

    我的数据格式 Group Count Month Year A 10 February 2015 B 8 February 2015 C 15 February 2016 我将使用过滤器来显示按组列分隔的每个月的数据 X axis会有团体
  • 将固定大小的 Map 序列化为 CBOR

    我有以下 JSON 2 c true 3 p 10 我想转换为 CBOR 格式 根据 cbor me 我有以下输出 82A102A16163F5A103A161700A 但是 当使用 Jackson Binary CBOR Serializ
  • GCC链接器找不到标准库?

    我一直在使用 XCode 开发一个学校项目 最终产品必须以带有 makefile 的源代码形式提交 因此我编写了一个 makefile 并开始以这种方式进行编译 以确保我有一个工作副本 这是我的生成文件 all main o StackLi
  • 如何扩展具有动态形成选择器的类/混合

    如何扩展使用 组合器动态形成的 Less 类 less 产生预期输出 hello world color red foo extend hello world font size 20px 预期的 CSS 输出 hello world fo
  • pandas 数据框任意两列之间的百分比差异

    我想定义一个函数来计算任意两个 pandas 列之间的百分比差异 假设我的数据框是由以下定义的 R1 R2 R3 R4 R5 R6 A B 1 2 3 4 我希望我的计算定义为 df R7 df R3 R4 apply method cal
  • 如何分组并根据总和过滤数据框?

    所以我有一个数据框 milk countries exports 它由以下列组成 期间 特定行的年份和月份 数据集是一年中的逐月 正在做出口的 记者 国家 从 报告者 进口的 伙伴 国家 商品 由 2 项组成 既不浓缩也不加糖的牛奶和奶油
  • SqlDataReader 检查空值的最佳方法 -sqlDataReader.IsDBNull 与 DBNull.Value

    我想从数据库中检索十进制值 并且想知道检查空值的推荐方法 我见过MSDN DBNull Value 字段 http msdn microsoft com en us library system dbnull value aspx该检查很少
  • 如果我递增数组变量会发生什么?

    我知道如果指针位于堆上 则更改指针的地址是不安全的 因为稍后释放它会引起一些麻烦 但是如果指针在堆栈上声明 那么这样做安全吗 我正在谈论这样的事情 char arr one two three arr or arr 我希望我通过将 char
  • Vaadin 在另一个浏览器/选项卡/系统中关闭同一用户的 UI

    我正在 Vaadin 7 中做一个项目 我需要实现如下所示的登录功能 用户 A 登录到系统 1 他再次登录到另一个系统 2 现在我想知道如何关闭系统 1 上的用户界面 我尝试了一些方法 如果是同一个浏览器 可以关闭用户界面 但是 对于不同的
  • 可编辑组合框[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我必须创建一个可编辑的组合框 组合框包含姓名 年龄和城市 用户可以输入姓名 年龄或城市 组合框必须过滤所有包含的列表 并应显示相关列表 Eg
  • 如何在命名空间之间复制数据存储实体

    我想将一个命名空间 例如 www mysite com 中的所有数据复制到另一个命名空间 例如 nightly latest mysite appspot com 最好的方法是什么 示例命名空间不是随机的 它们是由 NamespaceFil
  • Javascript/jquery,获取 (x,y) 处的所有 div 位置。转发触碰? [复制]

    这个问题在这里已经有答案了 可能的重复 如何获取位于单击点的所有元素的列表 https stackoverflow com questions 3735278 how to get a list of all elements that r
  • 无法启动 RMI Fibonacci 服务器

    我正在学习 Java RMI 并且创建了一个非常简单的服务器来计算斐波那契数 服务器 FibonacciServer 创建一个负责计算序列 Fibonacci 的对象 并且该对象实现一个接口 IFibonacci FibonacciServ
  • UPDATE 后的 @@ROWCOUNT 是否可靠地衡量*匹配*行?

    Does ROWCOUNT可靠地告诉你有多少行matched the WHERE条款中的UPDATE 而不是实际有多少changed by it In 的文档 ROWCOUNT http msdn microsoft com en gb l
  • 设置我所有表单的可本地化属性

    有没有办法自动设置此属性 我们有数百种表单需要本地化 将所有这些表单设置为 true 将是一场噩梦 有没有办法让 Visual Studio 将解决方案 项目中的所有表单设置为 Localized true 当您创建一个新的Windows窗
  • 使用rails中的link_to在锚标记上指定附加属性

    假设我想要在 Rails 中输出这样的 html a href Action a 如何使用 Rails 中的 link to 帮助程序指定属性 角色和 tabIndex 查看link to 的 Rails 文档 http api rubyo
  • Android Studio 2.0 - 应用程序首次运行时暂停/白屏

    自从升级到 Android Studio 2 0 稳定版 以来 我注意到一个问题 而我安装的以前版本的 Android Studio 1 5 中不存在这个问题 我正在开发一个当前项目 我将在真实设备和模拟器上构建 调试版本 并运行该项目 我
  • 自定义Android通知声音

    我正在尝试在我的应用程序中实现自定义通知声音 我编写了以下代码 但应用程序仅播放默认声音 而不播放我在原始文件夹中添加的自定义声音 收到通知后 日志甚至不会抛出任何错误或异常来说明为什么不播放自定义声音 我尝试在网上搜索并尝试采用不同的方法