我在下面的代码中收到以下警告

硬件对于为无法通过LINT判断的Intent Filter注册的未受保护的广播,ScanBroadCastReceiver缺少RECEIVER_EXPORTED或RECEIVER_NOT_EXPORTED标志

registerReceiver(
          hardwareScanBroadcastReceiver,
          scanningHardware.createIntent()
        )

但是当我添加Receiver_NOT_EXPORTED时,我收到如下警告

字段需要API级别33(当前最小值为26):android.Conent.Context#Receiver_NOT_EXPORT

SDK最低版本为26.但是,我如何实现寄存器接收器并使其向后兼容呢?

我试着阅读文档,但我没有找到任何线索.

https://developer.android.com/guide/components/broadcasts

推荐答案

最简单的解决方案是use ContextCompat.registerReceiver()RECEIVER_NOT_EXPORTEDContextCompat版本.在幕后,它将判断运行应用程序的操作系统版本,并使用正确的标志调用正确的Real registerReceiver()方法.

Android相关问答推荐

MAP函数返回单位列表而不是字符列表

穿戴与iPhone连接的安卓操作系统

BroadCastReceiver的onReceive方法中的Intent上的Extras为空

Android-LVL库始终返回NOT_SUBLISTED

如何在Jetpack Compose中将对象的移动从一个路径平滑地切换到另一个路径?

如何在Android中将以前的数据保存在复选框中?

Android Compose - 为什么 Canvas 中的drawText在底部被切断而不是在顶部?

从 Jetpack Compose 中的图像中删除默认高度

如何在 Jetpack Compose 中对齐按钮底部中心?

运行设备选项卡在 Android Studio 中自动打开

在 kotlin 中动态添加 GridView

无法找到方法 ''java.io.File > org.jetbrains.kotlin.gradle.tasks.KotlinCompile.getDestinationDir()

如何正确地将图像上传到 Jetpack Compose 中的 LazyList 中的项目?

使用 capacitor cordova 插件的 Android Studio 错误

如何在stroke android drawable中设置渐变

Google Play 服务登录在 Unity Android 上无法正常运行

SavedStateViewModelFactory 用空构造函数构造

模拟器在 android studio bumblebee 中不起作用

错误:状态{statusCode=DEVELOPER_ERROR,分辨率=null}

java.lang.IllegalArgumentException:AppCompat 不支持当前主题功能