根据新的Google许可限制https://support.google.com/googleplay/android-developer/answer/9047303#alternatives,我正在使用SMS目的发送短信以验证用户的电话号码。但是问题是我无法关闭消息传递应用程序,也无法获得短信发送状态的任何回调。(即使从消息应用程序按回也总是返回相同的resultCode)
我尝试过关闭应用程序,但无法正常工作。
smsIntent.putExtra(“ exit_on_sent”,true);
并且也遵循此答案Sending SMS via an Intent and know if the SMS has been sent or not,但同样需要READ_SMS权限。
对此没有适当的解决方案。
请建议我如何实现此解决方案或任何其他替代解决方案。 我的应用程序需要通过SMS发送短信才能进行帐户验证。
答案 0 :(得分:1)
自从Google针对发送和接收短信的新政策以来,我的应用程序也遇到了类似的问题
不幸的是,许多SMS应用程序不支持exit_on_sent。无论是否发送了短信,使用startActivityForResult打开SMS默认应用都不会返回不同的值
最好的解决方案是在互联网上使用提供API来发送SMS的第三方服务(但它可能不是免费的)
我也尝试按照Sending SMS via an Intent and know if the SMS has been sent or not中所述注册SMS内容查看器 =>根据我的经验,即使未授予READ_SMS权限,也会引发onChange事件(在崩溃的小米上除外;-),但是发送的SMS信息很少(您甚至都不知道是否短信已发送或接收)
然后,您可以使用2个选项来自动读取SMS: -使用Google的SMS检索器API(请参见https://developers.google.com/identity/sms-retriever/) -对于API 26及更高版本,请使用SmsManager.createAppSpecificSmsToken(请参见android sms verification without READ_SMS permission)