Подтвердить что ты не робот

Телефоны Redmi не запрашивают разрешения на SMS и, следовательно, не читают смс

Ниже приведен мой код:

<!-- Data SMS Receiver -->
    <receiver android:name=".otp.OTPReceiver" android:enabled="true" android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.DATA_SMS_RECEIVED" />


            <data android:scheme="sms" />
            <data android:port="9027" />
        </intent-filter>
    </receiver>

otp.OTPReceiver является ассоциированным BroadcastReceiver Это работает во всех других телефонах, кроме устройств Redmi. В телефонах Redmi вам необходимо вручную включить автозапуск и другие разрешения в приложении "Разрешения" (это приложение обрабатывает разрешения на телефонах Redmi). Я вижу Facebook, whatsapp и т.д. При установке с разрешениями. Хотелось бы знать, как это можно сделать.

Я видел такие вопросы, как this и this, которые задают одно и то же, но оба они не ответили. Я попытался добавить android:enabled="true", android:exported="true" в фрагмент получателя xml, как указано в здесь. Но никто из них не работает.

Изменить: Я использую data sms (также известный как port sms). Я также проверил нормальные смс, и проблема существует и на телефонах Redmi.

4b9b3361

Ответ 1

После долгого времени попытки получить SMS-разрешение MI (через поставщика SMS-сообщений). Добавьте этот метод (метод поставщика контента) с вашей активностью или фрагментом. вы сможете получить разрешение.

private void displaySmsLog() {
    Uri allMessages = Uri.parse("content://sms/");
    //Cursor cursor = managedQuery(allMessages, null, null, null, null);  Both are same
    Cursor cursor = this.getContentResolver().query(allMessages, null,
            null, null, null);

    while (cursor.moveToNext()) {
        for (int i = 0; i < cursor.getColumnCount(); i++) {
            Log.d(cursor.getColumnName(i) + "", cursor.getString(i) + "");
        }
        Log.d("One row finished",
                "**************************************************");
    }

}

Попробуй, это сработало для меня.