Twilio验证SDK未在Android 7.0和8.0上读取短信

Twilio验证SDK未在Android 7.0和8.0上读取短信,android,twilio,Android,Twilio,我一直在使用Android的Twilio验证SDK(com.Twilio:Verification:1.0.9)和这个build.gradle配置:compile_SDK=26,min_SDK=23,target_SDK=26,build_tools='27.0.3',我还无法让应用程序在Android 7.0和8.0设备上读取短信;然而,它在安卓6.0上运行良好 这是我的收音机: class PhoneVerificationReceiver: BroadcastReceiver() {

我一直在使用Android的Twilio验证SDK(com.Twilio:Verification:1.0.9)和这个build.gradle配置:compile_SDK=26,min_SDK=23,target_SDK=26,build_tools='27.0.3',我还无法让应用程序在Android 7.0和8.0设备上读取短信;然而,它在安卓6.0上运行良好

这是我的收音机:

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>
检索JWT令牌后,验证过程开始,它使用
VerificationStatus.State.STARTED
成功进入
onReceive
方法。之后,短信被接收,但它不再进入
onReceive
功能

Android SDK散列签名已就位;我遵循了这个教程:;这段代码在Android 6.0设备上运行良好


任何帮助都将不胜感激。

这里是Twilio开发者福音传道者

我不是Android开发者,但我在内部向团队寻求帮助,下面是他们告诉我的

清单声明的广播接收器对较新版本的Android有一些限制。您能否在运行时使用
context.registerReceiver
注册广播接收器,并使用
context.unregisterReceiver
注销广播接收器

这里有更多信息:


让我知道这是否有帮助。

尝试了上下文注册/注销广播接收器,但它仍然无法读取短信。接收器似乎没有捕获外部意图,因为在使用Twilio启动验证后,我从意图接收到启动状态。您确定PhoneVerificationReceiver没有接收更多更新吗?因为RxBus可能有问题。publishYes,它没有接收更新,我在
onReceive
方法上添加了一个断点,它在STARTED状态下只进入一次;然后,SMS到达,但它不会再次进入接收
onReceive
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()
}