Сбой Android MIUI при получении SMS с активным слушателем - PullRequest
0 голосов
/ 29 марта 2012

В настоящее время я тестирую приложение на HD2, оснащенном MIUI (Gingerbread 2.3.7). Я создаю экземпляр BroadcastReceiver, чтобы перехватывать входящие SMS и регистрировать его. Через пару секунд MIUI вылетает при загрузке анимации.

Телефон с двойной загрузкой между WM6.5 и Android. У меня нет другого телефона Android для тестирования. Из моих экспериментов сбой происходит, когда телефон получает SMS, которого я жду. Никакое сообщение журнала не предупреждает меня о сбое, ни одна строка BroadcastReceiver не выполняется .

Вот как я настраиваю слушателя

    try {
        smsReceiver = new SmsReceiver();
        IntentFilter iFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
        iFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
        registerReceiver(smsReceiver, iFilter);
    } catch (RuntimeException ex) {
        Log.e("MyActivity", "Error");
        throw ex;
    }

Manifest

<receiver
            android:name="SmsReceiver"
            android:enabled="false"
            android:permission="android.permission.RECEIVE_SMS" >
            <intent-filter android:priority="300" >
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>

Код не попадает в блок catch. Мое приложение уже имеет разрешение RECEIVE_SMS в манифесте.

Как я мог это исправить? Мое приложение полностью использует SMS-разбор.

1 Ответ

1 голос
/ 29 марта 2012

Это известная ошибка MIUI ( источник , источник ).

Изменение дистрибутива Android решило мою проблему. Я получил SMS без проблем и обнаружил, что манифест не нуждается в обновлении, когда вы программно определяете BroadcastReceiver

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...