扫描/识别 NFC 意图时防止提示音

Posted

技术标签:

【中文标题】扫描/识别 NFC 意图时防止提示音【英文标题】:Prevent alert tone when scanning / identifying an NFC intent 【发布时间】:2012-01-05 13:47:42 【问题描述】:

也许我遗漏了一些东西,但是当我通过 Galaxy nexus 扫描 NFC 标签时,手机总是发出默认的提示音。

有没有办法以编程方式将其关闭?我已经搜索了菜单/首选项,但找不到这样做的方法。下一步... ICS源代码:-/

【问题讨论】:

android.stackexchange.com 上回答这个问题可能会更好。这当然是假设您尚未植根手机。 呵呵.. android.stackexchange.com 说“转到 ***.com”... 干得好,我可以发现递归。手机未植根,因为我想将其放入非植根手机的应用程序中... 我想要得到的是:如果在 regular 设置中确实不存在此关闭音调的选项(并且您在 android.stackexchange 上验证了这一点.com),那么您很有可能无法以编程方式进行操作。有根电话评论适用于后者。 FWIW。我在 android 代码库功能请求列表中提出了这个:code.google.com/p/android/issues/detail?id=24022 【参考方案1】:

使用 android-19,您可以:

如中所述: http://developer.android.com/reference/android/nfc/NfcAdapter.html#FLAG_READER_NO_PLATFORM_SOUNDS

通过使用 NfcAdapter.enableReaderMode() 和标志 FLAG_READER_NO_PLATFORM_SOUNDS 而不是 NfcAdapter.enableForegroundDispatch()

【讨论】:

请阅读How to Answer 并提供答案链接中的有用信息。如果链接失效,您的答案将变得毫无用处。【参考方案2】:

这里是一个简单的例子,说明如何静音/改变 nfc 声音

public class MainActivity extends Activity implements ReaderCallback
private NfcAdapter mNfcAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mNfcAdapter = NfcAdapter.getDefaultAdapter(this);


@Override
public void onResume() 
    super.onResume();
    // This example works using using simple mifare ultralight tags. Set any necessary flags for other tags 
    mNfcAdapter.enableReaderMode(this, this, NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS, null);


@Override
public void onPause() 
    super.onPause();
    mNfcAdapter.disableReaderMode(this);


@Override
public void onTagDiscovered(Tag tag) 
    // Play your own sound here

    // Then handle your tag

【讨论】:

【参考方案3】:

无法以编程方式关闭此声音或覆盖 Touch to Beam UI。

【讨论】:

现在可以了,见***.com/questions/36908374/…

以上是关于扫描/识别 NFC 意图时防止提示音的主要内容,如果未能解决你的问题,请参考以下文章

如何防止应用关闭时 startCommand 的意图返回 null

如何防止(覆盖或格式化或克隆其他任何内容)我的 NFC TAG?

防止新意图或切换应用程序破坏活动

如何防止用户堵塞我的扫描仪?

Debian安装fail2ban来防止扫描

防止在 chrome 上“扫描新卡”