我使用这个build.gradle配置使用Twilio Verification SDK for Android(com.twilio:verification:1.0.9):compile_sdk = 26,min_sdk = 23,target_sdk = 26,build_tools = ' 27.0.3'而且我还没能让应用程序在Android 7.0和8.0设备上阅读短信;但是,它在Android 6.0上运行良好。
这是我的BroadcastReceiver:
$servers = @()
$servers += [PsCustomObject]@{
ServerName = $serverName
ServerID =$serverID
GroupName = $groupName
GroupID = $groupID
}
它以AndroidManifest声明:
class PhoneVerificationReceiver: BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent) {
RxBus.publish(PhoneVerificationEvent(TwilioVerification.getVerificationStatus(intent).state))
}
}
我在这里订阅:
<receiver
android:name=".service.PhoneVerificationReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.twilio.verification.current_status" />
</intent-filter>
</receiver>
检索JWT令牌后,验证过程开始,它成功地使用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()
}
输入onReceive
方法。之后,收到短信,但不再输入VerificationStatus.State.STARTED
功能。
Android SDK哈希签名已到位;我遵循了本教程:https://www.twilio.com/docs/verify/tutorials/android-sdk-register-your-app;此代码在Android 6.0设备上运行良好。
非常感谢任何帮助。
答案 0 :(得分:1)
Twilio开发者传道者在这里。
我不是Android开发人员,但我在内部向团队核实了他们的帮助,以及他们告诉我的内容。
Manifest声明的广播接收器对较新版本的Android有一些限制。您可以使用context.registerReceiver
在运行时注册广播接收器,并使用context.unregisterReceiver
取消注册。
此处有更多信息:https://developer.android.com/guide/components/broadcasts#context-registered-receivers。
让我知道这是否有帮助。