banner
Sep 15, 2024
41 Views

[React Native] – One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn’t being registered exclusively for system broadcasts

Written by
banner

Lỗi này bị khi đưa lên android 14. Mình dùng 1 thư viện khá cũ là react-native-music-control. Vì ở Google I/O 2023 RECEIVER_EXPORTED / RECEIVER_NOT_EXPORTED đã được giới thiệu như một phần của Android 13 và hiện là yêu cầu bắt buộc đối với các ứng dụng chạy trên Android 14 về sau.

Cách giải quyết:

  • Vào trong node_modules của thư viện đó.
  • Tìm những chỗ dùng hàm registerReceiver và sửa như sau
context.registerReceiver(receiver, filter);

sửa thành

if (Build.VERSION.SDK_INT >= 34 && appCtx.getApplicationInfo().targetSdkVersion >= 34) {
    context.registerReceiver(receiver, filter, Context.RECEIVER_EXPORTED);
}else{
    context.registerReceiver(receiver, filter);
}

Article Categories:
config · dev
banner

Leave a Reply

Your email address will not be published. Required fields are marked *