Получатель зарегистрирован, но намерение не получено в 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)) {
}
}
Также я упомянул разрешения в Манифесте. Какие изменения мне нужно сделать, чтобы получить намерение в Орео. Пожалуйста помоги.