Получатель зарегистрирован, но намерение не получено в oreo

Мое приложение будет проверять SMS и получать некоторые данные из него. До API 26 все работало нормально. С Oreo они упомянули, что неявный вещательный приемник не будет работать с SO Q&As. Я удалил свой приемник из манифеста и добавил во время выполнения.

 registerReceiver(broadcast, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));

Разрешение SMS также дано во время выполнения, и я не уверен, почему нет никакого намерения, полученного. Я попытался использовать Сервис, но все еще та же проблема. Для получения смс-сообщения использую этот код.

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

   ActivityCompat.requestPermissions(otpreadertwo.this, new String[]{Manifest.permission.RECEIVE_SMS},
                SMS_PERMISSION_REQ_CODE_SUBMIT);
    }  

Получение разрешения наложения также с использованием приведенного ниже кода

 Intent intent = null;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            Toast.makeText(this,"Inside onclick",Toast.LENGTH_LONG).show();
            intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setData(Uri.parse("package:" + getPackageName()));
            startActivityForResult(intent, 1234);
        }

мой приемник вещания

 public class Bcast extends BroadcastReceiver {
  private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
 public  Bcast(){ }
@Override
public void onReceive(final Context context, Intent intent) {
   if (intent.getAction().equals(SMS_RECEIVED)) { 

     }
    }

Также я упомянул разрешения в Манифесте. Какие изменения мне нужно сделать, чтобы получить намерение в Орео. Пожалуйста помоги.

0 ответов

Другие вопросы по тегам