如何以编程方式播放 Android NFC 通知声音?

Posted

技术标签:

【中文标题】如何以编程方式播放 Android NFC 通知声音?【英文标题】:How do I programmatically play the Android NFC notification sound? 【发布时间】:2015-05-29 12:57:15 【问题描述】:

我有一个应用程序 (NFC Sniffer),它允许用户读取 NFC 标签。当用户尝试读取标签时,会发生 3 件事中的 1 件事:

    没什么,标签距离不够近 检测到 NFC,但读卡失败,此时会播放通知音。 读取标签,在这种情况下播放不同的通知声音。

许多新用户对这些通知声音感到困惑。我希望我的程序有一个帮助屏幕,带有播放这两种声音的按钮。

但是如何从我的代码中定位和播放这两个通知呢?

【问题讨论】:

【参考方案1】:

您可以从 AOSP 项目的来源中获取这些声音,并将它们包含在您自己的应用中。声音是 NFC 系统服务应用程序的一部分:

https://android.googlesource.com/platform/packages/apps/Nfc/+/master/res/raw/

顺便说一句。从 Android 4.4 开始,您可以在 Activity 处于前台时禁用声音,方法是使用带有标志 NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS 的 reader mode API。

【讨论】:

谢谢,这正是我所需要的。然后我使用 SoundPool 播放这些声音。 遗憾的是,我后来遇到了使用不同声音的手机。所以声音可能会因硬件而异。 非常感谢您提供有关现有声音的信息。有趣的是,我当前的阅读在收到“标签丢失”错误时,不会播放上述“错误”声音。至少现在有了阅读器 API,我可以手动播放。

以上是关于如何以编程方式播放 Android NFC 通知声音?的主要内容,如果未能解决你的问题,请参考以下文章

Android:以编程方式更改 NFC 设置(开/关)

如何以编程方式关闭/禁用 NFC?

如何在android中以编程方式从通知栏中删除通知?

当app运行时,如何在android中以编程方式关闭通知?

如何以编程方式在 Android Q 中打开设置面板?

如何以编程方式播放默认电话铃声?