registerReceiver错误提示“必须是一个或多个类型之一”

4

使用以下代码之一:

ContextCompat.registerReceiver(this, mIntentReceiver, filter, ContextCompat.RECEIVER_EXPORTED); 或者 registerReceiver(mIntentReceiver, filter, Context.RECEIVER_EXPORTED);

它提示 "必须是以下一个或多个选项:androidx.core.content.ContextCompat.RECEIVER_VISIBLE_TO_INSTANT_APPS,androidx.core.content.ContextCompat.RECEIVER_EXPORTED,androidx.core.content.ContextCompat.RECEIVER_NOT_EXPORTED"

输入图像说明

似乎我没有满足此选项界面,并且提供了更改为RECEIVER_VISIBLE_TO_INSTANT_APPS的提示,如果采用该选项,错误将消失。但这并不是完美的选项。

2个回答

2
在Sdk 34中
ContextCompat.registerReceiver(
   requireContext(),
   smsReceiver,
   IntentFilter(SmsRetriever.SMS_RETRIEVED_ACTION),
   RECEIVER_NOT_EXPORTED
)

0
在Sdk 34中,获得许可。
val intentFilter = IntentFilter(SmsRetriever.SMS_RETRIEVED_ACTION)
ContextCompat.registerReceiver(
    this,
    smsVerificationReceiver,
    intentFilter,
    SmsRetriever.SEND_PERMISSION,
    null,
    ContextCompat.RECEIVER_NOT_EXPORTED
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接