android - 启用谷歌应用程序签名后,生成的 11 个字符的哈希码不起作用

标签 android sms

我正在尝试实现 Sms Retriever用于在没有任何 SMS 权限的情况下从用户手机获取 otp。

最初,我使用 keystore(.jks) 生成了一个散列键 描述的 key 工具 here

当我用这个 keystore 对 apk 进行签名并收到带有这个 hashkey 的 SMS 时,它工作正常。

但是将应用程序上传到 google play store 后,短信接收器无法正常工作。我们启用了 google app signing 来对应用程序进行签名。我发现谷歌将删除上传的签名,这是使用谷歌应用程序签名的应用程序的 key ,如所述 here .因此,我试图将谷歌应用程序签名证书添加到上传的 keystore 中,并使用别名创建新的 hashkey。但我无法将应用程序签名证书添加到具有别名的 keystore 中。

有什么建议可以为短信检索器生成带有应用签名证书的散列键吗?

最佳答案

当 Google 的 App Signing 启用时,将生成不带别名的 11 字符散列

SMS Retrieve API

The following command computes the hash string from your app's production keystore:

keytool -exportcert -alias MyAndroidKey -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

在上面的命令中,哈希是基于 MyAndroidKey 别名(-alias MyAndroidKey)生成的。

尝试为已启用 Google APK 签名生成不带别名的哈希值

keytool -exportcert -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

关于android - 启用谷歌应用程序签名后,生成的 11 个字符的哈希码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50588947/

相关文章:

python - telnet 从 kannel 中的 fakesmsc 获取短信

android - 如何访问我在收件箱中收到的短信时间?

android - Volley 的 NetworkImageView - setImageBitmap 方法不起作用

android - 如何在安卓分享界面添加PhoneGap应用

android - 如何将现有的android项目(build.gradle)打开到android studio

android - 如何使用传入的 SMS 刷新前台 Activity?

java - 尝试使用文字转语音大声朗读短信时出现 NullPointerException

android - ViewBinder 的问题

android - 模拟器不接受 ANDROID_SDK_ROOT

sms - 无法回复来自 twilio 的消息