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

硬件对于为无法通过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相关问答推荐

修改参数应该应用于哪些子元素?

Android编写动画在发布版本中崩溃

Android配置设置. gradle不同应用风格

编写Landscape BoxWithRequests具有错误的高度.(aspectRatio matchHeight约束第一次未按预期工作)

Android开发:主题排版不适用于按钮文本

我如何剪裁一个可由另一个合成的

无法加载类';com.android.build.api.extension.AndroidComponentsExtension';

Dispatchers中的Kotlin协同程序.Main没有';t块主螺纹

如何在 compose 中使用可变对象?

FFmpeg Android 错误

修复报错 RecyclerView: No adapter attached;跳过布局

在 Android Studio 中获取更新版本的 Picasso 库的错误警告消息

如何在一个活动中预加载图像然后在另一个活动中加载它们?

在 Compose 中停止键盘将顶部应用栏推离屏幕

将房间中的实体更新为 isCompleted 并使用 Flow 问题获取所有数据

如何在行/列/卡片 compose 中添加左边框

将应用更改为暗模式后 Android MainActivity 数据泄漏

Android Jetpack Compose - 每次文本字段值更改时,可组合函数都会重新组合

在 Room 中创建一对多关系时,@Relation 类是什么意思?

Jetpack compose 绘制形状