Twilio Verification SDK не читает SMS на Android 7.0 и 8.0 - PullRequest
0 голосов
/ 16 мая 2018

Я работал с Twilio Verification SDK для Android (com.twilio: проверка: 1.0.9) с этой конфигурацией build.gradle: compile_sdk = 26, min_sdk = 23, target_sdk = 26 и build_tools = '27 .0 .3 'и я не смог заставить приложение читать SMS на устройствах Android 7.0 и 8.0; тем не менее, он отлично работает на Android 6.0.

Это мой BroadcastReceiver:

class PhoneVerificationReceiver: BroadcastReceiver() {

    override fun onReceive(context: Context?, intent: Intent) {
        RxBus.publish(PhoneVerificationEvent(TwilioVerification.getVerificationStatus(intent).state))
    }

}

Это объявлено на AndroidManifest следующим образом:

<receiver
    android:name=".service.PhoneVerificationReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="com.twilio.verification.current_status" />
    </intent-filter>
</receiver>

Здесь у меня есть подписка:

override fun onResume() {
    super.onResume()
    disposable.add(
            RxBus.listen(PhoneVerificationEvent::class.java)
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe({
                        when (it.state) {
                            VerificationStatus.State.STARTED, VerificationStatus.State.AWAITING_VERIFICATION -> {
                                lockUI()
                            }
                            VerificationStatus.State.SUCCESS -> {
                                savePhoneNumber()
                            }
                            VerificationStatus.State.ERROR -> {
                                unlockUI("Phone couldn\'t be verified")
                            }
                        }
                    }, {
                        Timber.e(it)
                    })
    )
}

override fun onPause() {
    disposable.clear()
    super.onPause()
}

После получения токена JWT начинается процесс проверки, он успешно вводит метод onReceive с VerificationStatus.State.STARTED. После этого SMS получено, но больше не входит в функцию onReceive.

Отладчик

Хэш-подпись Android SDK установлена; Я следовал этому руководству: https://www.twilio.com/docs/verify/tutorials/android-sdk-register-your-app; этот код отлично работает на устройствах Android 6.0.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 16 мая 2018

Разработчик Twilio здесь.

Я не являюсь разработчиком Android, но я обратился к команде за помощью, и вот что они мне сказали.

Манифест заявленных вещательных приемников имеет некоторые ограничения на новые версии Android. Можете ли вы зарегистрировать приемник вещания во время выполнения, используя context.registerReceiver, и отменить регистрацию, используя context.unregisterReceiver.

Больше информации здесь: https://developer.android.com/guide/components/broadcasts#context-registered-receivers.

Дайте мне знать, поможет ли это вообще.

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