Android 如何在开机前接收带标志的意图\u接收器\u仅注册\u

Android 如何在开机前接收带标志的意图\u接收器\u仅注册\u,android,android-intent,service,hid,Android,Android Intent,Service,Hid,在Android 5.0以后的版本中,HidService.java包含以下功能: private void broadcastReport(BluetoothDevice device, byte[] report, int rpt_size) { Intent intent = new Intent(BluetoothInputDevice.ACTION_REPORT); intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device

在Android 5.0以后的版本中,HidService.java包含以下功能:

private void broadcastReport(BluetoothDevice device, byte[] report, int rpt_size) {
    Intent intent = new Intent(BluetoothInputDevice.ACTION_REPORT);
    intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
    intent.putExtra(BluetoothInputDevice.EXTRA_REPORT, report);
    intent.putExtra(BluetoothInputDevice.EXTRA_REPORT_BUFFER_SIZE, rpt_size);
    intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
    sendBroadcast(intent, BLUETOOTH_PERM);
}
我无法在intent中找到有关此标志的任何文档。我应该如何在我的应用程序中接收此广播意图

===================

已编辑的内容已删除并形成新问题

此常量未记录在中,因为它不用于公共用途

这是我发现的一个描述。(第3018行)

在引导前标记接收器注册

公共静态最终整数在引导前标记\u接收器\u仅注册\u

如果设置,则在引导完成之前发送广播时,将只调用已注册的接收器——不会启动广播接收器组件。即使没有接收器被调用,粘性意图状态也将被正确记录。如果在广播意图中指定了标志_RECEIVER _REGISTERED _ONLY,则不需要该标志

此标志仅供系统服务使用作为一种方便,以避免在检测引导完成时实施更复杂的机制


强调我的意图。

因此,如果我理解正确,所有广播接收器将在引导后接收到意图。我不需要编写系统服务来接收此意图…@GPS您无法在应用程序中接收此意图。这只适用于googleHi Tim开发的android应用程序,感谢您花时间回复
BluetoothInputDevice.ACTION\u REPORT
基本上只是一个字符串“android.bluetooth.input.profile.ACTION.REPORT”,而意图的广播方式应该只需要
bluetooth\u PERM
,我应该通过清单中的
“android.permission.bluetooth”
获得它。我还遗漏了什么可以阻止我的应用程序接收到意图的东西吗?@GPS我不懂。这是一个新问题吗?无论如何,如果您想收到最新的问题,您可能应该将您的活动或清单中的任何内容注册为
。添加了我的广播接收器和清单代码。我看不到任何发送意图的方式会禁止我的代码接收它,但我的onReceive()从未被调用。我主要担心这个标志会阻止意图的接收。正如答案所阐明的,它只在引导期间限制收件人。