You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Java中Phone Number Hint无法获取手机号问题排查求助

Phone Number Hint API无法检测手机号的问题及解决方法

我正在使用Java开发Android应用,尝试实现Phone Number Hint功能,但每次执行代码都会进入addOnFailureListener回调。

代码片段

ActivityResultLauncher<IntentSenderRequest> phoneNumberHintIntentResultLauncher =
        registerForActivityResult(
                new ActivityResultContracts.StartIntentSenderForResult(),
                new ActivityResultCallback<ActivityResult>() {
                    @Override
                    public void onActivityResult(ActivityResult result) {
                        try {
                            String phoneNumber = Identity.getSignInClient(Register.this).getPhoneNumberFromIntent(result.getData());
                            ed_number.setText(phoneNumber);
                        } catch (ApiException e) {
                            throw new RuntimeException(e);
                        }
                    }
                });

private void requestPhoneNumberHint() {
    GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();

    Identity.getSignInClient(Register.this)
            .getPhoneNumberHintIntent(request)
            .addOnSuccessListener(result -> {
                try {
                    IntentSenderRequest req = new IntentSenderRequest.Builder(result).build();
                    phoneNumberHintIntentResultLauncher.launch(req);
                } catch (Exception e) {
                    Log.e("===", "Launching the PendingIntent failed");
                }
            })
            .addOnFailureListener(e -> Log.e("===", "Phone Number Hint failed\n"+e.getMessage()+"\n"));
}

错误日志

Phone Number Hint failed
16: [28438] No phone number is found on this device.

问题原因及解决方法

  • 检查SIM卡状态:Phone Number Hint API优先读取SIM卡内的手机号,确保设备已插入有效且激活的SIM卡,且SIM卡内已写入手机号信息。
  • 验证通讯录本机号码:部分设备会读取系统通讯录中标记为“本机号码”的条目,确认通讯录中已添加并验证本机手机号。
  • 申请必要权限:
    • Android 12及以上:需申请READ_PHONE_NUMBERS权限,并在运行时获取用户授权;
    • Android 11及以下:需申请READ_PHONE_STATE权限,同样需运行时授权。
  • 更新Google Play服务:该API依赖Google Play服务,确保设备上的Google Play服务已更新至最新版本。
  • 排除区域/运营商限制:部分地区或运营商可能限制该API的功能,可尝试更换其他运营商的SIM卡进行测试。

内容的提问来源于stack exchange,提问作者MobDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:47:15