如何修复不受保护的SMS BroadcastReceiver lint警告

我的应用程序需要能够接收短信。 一切正常,但我得到这个lint警告:

声明SMS_DELIVER或SMS_RECEIVED的intent-filter的BroadcastReceivers必须确保调用者具有BROADCAST_SMS权限,否则恶意actor可能会欺骗意图。

如何“确保调用者具有BROADCAST_SMS权限”?

在我的清单中,我有:

        

我的代码:

 public class SmsReceiver extends BroadcastReceiver { public SmsReceiver() {} @Override public void onReceive(final Context context, final Intent intent) { final Bundle bundle = intent.getExtras(); if (bundle != null) { final Object[] pdusObj = (Object[]) bundle.get("pdus"); for (int i = 0; i < pdusObj.length; i++) { final SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); // use currentMessage } } } } 

android:permission="android.permission.BROADCAST_SMS"到开始标记。

此外,默认情况下启用组件, 将其导出,因此您实际上不需要显式包含这些属性。