在Android Oreo中,隐式系统广播"android.provider.Telephony.SMS_RECEIVED"被禁止注册,这是为了增强用户隐私和安全性。然而,如果你确实需要在Android Oreo中接收短信广播,可以通过以下步骤进行注册:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 在这里处理接收到的短信广播
}
}
<receiver
android:name=".SmsReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
if (ContextCompat.checkSelfPermission(context, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.RECEIVE_SMS}, requestCode);
}
以上是在Android Oreo中注册不支持的隐式系统广播"android.provider.Telephony.SMS_RECEIVED"的方法。请注意,这种做法可能会受到用户隐私和安全性的限制,因此在使用时应慎重考虑。
领取专属 10元无门槛券
手把手带您无忧上云