I can’t get "android.provider.Telephony.SMS_RECEIVED" this cast in Android Oreo

This is my Menifest file

<receiver
android:name="com.agribazaar.android.receivers.OTPReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>

This is my broadcast receiver class

public class OTPReceiver extends BroadcastReceiver {
   @Override
public void onReceive(Context context, Intent intent) {        
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){

}
}
+4
source share
1 answer

This fixed the problem for me - I did not request runtime permission for android.Manifest.permission.RECEIVE_SMS. In earlier versions of android, it worked fine, but on android O devices I got a problem.

int SMS_PERMISSION_REQ_CODE_SUBMIT = 101;
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.RECEIVE_SMS)
                            != PackageManager.PERMISSION_GRANTED){

        ActivityCompat.requestPermissions(SmsActivity.this, new String[]{Manifest.permission.RECEIVE_SMS},
                                SMS_PERMISSION_REQ_CODE_SUBMIT);
}
+2
source

Source: https://habr.com/ru/post/1690324/


All Articles