SMS Retriever API - 为应用程序特定的密钥库文件生成 11 个字符的哈希码

Sas*_*iha 5 java android google-play-services

我正在尝试实现 sms 检索器 api 来读取 OTP 代码消息,而无需添加 read_sms 权限。

此处的帮助文档,要求用户生成特定于应用程序的哈希码。

我已经按要求生成了代码,但仍然

<action android:name="com.google.android.gms.auth.api.phone.SMS_RETRIEVED"/>

广播接收器没有启动。

我该如何调试?

我正在通过从一部手机向另一部手机发送 SMS 来对此进行测试,并且我正在遵循上述文档中指定的 SMS 要求。

此外,还提到了生成哈希码的各种方法。我都试过了。问题是每种方法生成不同的哈希。

我已经尝试过调试和发布密钥库。

以下是这些不同的方法:

  1. 此处描述的 linux 命令 -帮助文档
  2. sms_retriever_hash_v9文件所描述的在这里
  3. 通过包含示例应用程序中的AppSignatureHelper

小智 4

第一个 linux 命令指定别名为,MyAndroidKey但您的可能不同。您可以通过以下方式找到您的别名

keytool -list -rfc -keystore $KEYSTORE
Run Code Online (Sandbox Code Playgroud)

$KEYSTORE你的密钥库文件在哪里。

有了别名,你可以尝试使用以下两条命令来验证结果是否相同:

  • keytool -alias MyAndroidKey -exportcert -keystore $KEYSTORE | xxd -p

  • keytool -list -rfc -keystore $KEYSTORE | sed -e '1,/BEGIN/d' | sed -e '/END/,$d' | tr -d ' \n' | base64 --decode | xxd -p