Android 中的电话选择器 api

2024-03-03

我正在尝试使用电话选择器 API 获取电话号码,但得到空响应,这是我的代码。

GoogleApiClient googleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Auth.CREDENTIALS_API)
            .addConnectionCallbacks(this) 
            .addOnConnectionFailedListener(this) 
            .build();
    googleApiClient.connect();

HintRequest hintRequest = new HintRequest.Builder()
            .setPhoneNumberIdentifierSupported(true)
            .build();

    PendingIntent intent = Auth.CredentialsApi.getHintPickerIntent(
            googleApiClient, hintRequest);
    try {
        startIntentSenderForResult(intent.getIntentSender(),
                RESOLVE_HINT, null, 0, 0, 0);
    } catch (IntentSender.SendIntentException e) {
        e.printStackTrace();
    }

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RESOLVE_HINT) {
        if (resultCode == RESULT_OK) {
            Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
            // credential.getId();  <-- will need to process phone number string

        }
    }
}

上面的 resultCode 总是返回 0。


这是我为获取号码所做的事情:

Note:我正在获取里面的数字Fragment.

1)获取GoogleApiClient

private void getCreadenticalApiClient() {
        mCredentialsApiClient = new GoogleApiClient.Builder(getBaseContext())
                .addConnectionCallbacks(this)
                .enableAutoManage(getBaseContext(), this)
                .addApi(Auth.CREDENTIALS_API)
                .build();
    }

2)showHint方法将显示弹出的数字:

private void showHint() {
        HintRequest hintRequest = new HintRequest.Builder()
                .setHintPickerConfig(new CredentialPickerConfig.Builder()
                        .setShowCancelButton(true)
                        .build())
                .setPhoneNumberIdentifierSupported(true)
                .build();

        PendingIntent intent =
                Auth.CredentialsApi.getHintPickerIntent(mCredentialsApiClient, hintRequest);
        try {
            startIntentSenderForResult(intent.getIntentSender(), RC_HINT, null, 0, 0, 0,new Bundle());
        } catch (IntentSender.SendIntentException e) {
            Log.e("Login", "Could not start hint picker Intent", e);
        }
    }

3)这是您为View分配编号的地方

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == RC_HINT) {
            if (resultCode == RESULT_OK) {
                Credential cred = data.getParcelableExtra(Credential.EXTRA_KEY);
                etMobile.setText(cred.getId().substring(3));
            }
        }
    }

最后不要忘记在片段中实现这两个接口:

GoogleApiClient.ConnectionCallbacks
GoogleApiClient.OnConnectionFailedListener

依赖项:

    implementation 'com.google.android.gms:play-services-base:11.8.0'
    implementation 'com.google.android.gms:play-services-identity:11.8.0'
    implementation 'com.google.android.gms:play-services-auth:11.8.0'
    implementation 'com.google.android.gms:play-services-auth-api-phone:11.8.0'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中的电话选择器 api 的相关文章

随机推荐

  • Blazor 服务器端应用程序上的子 Blazor 应用程序

    将客户端 Blazor 应用添加到服务器端 Blazor 应用 Hi 继续这里的有用答案 升级到预览版 6 后 Blazor 子应用程序出现 404 错误 https stackoverflow com questions 56586677
  • 如何在新的 AppDomain 中运行 WPF 应用程序?执行程序集失败

    我正在尝试使用应用程序域从控制台应用程序启动 WPF 应用程序 但当我这样做时 我会收到意想不到的错误 独立运行 WPF 应用程序可以正常工作 这段代码也有效 var baseDirectory AppDomain CurrentDomai
  • 更多 coproc 问题

    这是后续bash coproc 和剩余的 coproc 输出 https stackoverflow com questions 7651946 我最终决定一次一行处理文件的习惯用法是 coproc cat auto etc build c
  • 如何使用 isalnum、isdigit、isupper 来测试字符串的每个字符? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试制作一个密码强度模拟器 它要求用户输入密码 然后返回分数 我在用 islanum isdigit isupper 尝试看看输入的
  • 在 C 中编译/匹配 POSIX 正则表达式

    我正在尝试匹配字符串中的以下项目pcode u后跟 1 或 2 位数字 phaseu phasep x 被非单词字符包围 y 被非单词字符包围 z 被非单词字符包围 我尝试使用 POSIX 正则表达式函数 如下所示 实现正则表达式匹配 但有
  • GoogleHadoopFileSystem 无法转换为 hadoop FileSystem?

    原来的问题是尝试在 Google Cloud 上部署 Spark 1 4 https stackoverflow com questions 31466206 spark 1 4 image for google cloud 下载并设置后
  • WCF 最佳性能设置

    您好 我正在使用 WCF 创建一个 API 我的问题可以分为两个单独的问题 1 我有很多电话 例如我有与客户 产品 订单 员工有关的电话 我的问题是所有这些都应该进入一个公共接口类 例如 public interface IRestServ
  • Mac 终端重新启动后无法运行大多数命令

    我正在使用Mac 我有一个定制终端zsh 有一段时间就好了 但在我重新启动计算机后 它的行为开始有所不同 终端停止运行命令 例如rake or rails 我已经使用rails创建了应用程序 但是使用了类似的rails命令rails v现在
  • 前面的字长

    我必须创建一个带有单个参数的函数word并返回前面单词的平均长度 以字符为单位 word在文字中 如果单词恰好是文本中出现的第一个单词 则该出现的前一个单词的长度应为零 例如 gt gt gt average length the 4 4
  • 新创建的创作资源未显示在 Luis 门户中

    我在 Luis Portal 中添加了创作资源并导入了一些应用程序 添加的创作资源最初出现在 Azure 门户和 Luis 门户中 然后 资源突然在 Luis 门户中消失 现在我无法使用 应用程序 页面中的下拉菜单选择资源 因为它不再显示在
  • BrowserslistError:未知的 Android 版本 67

    我使用创建了一个角度库angular 8 and CLI 8 我正在尝试构建库 但收到错误 ng build
  • ruby 中最短的 hex2bin?

    在 ruby 中将十六进制字符串转换为二进制字符串的最短方法是什么 例如 class def hex2bin end end AB12345678 hex2bin class String def hex2bin scan map x x
  • JFileChooser 显示在全屏 JFrame 之外

    import java awt DisplayMode import java awt GraphicsDevice import java awt GraphicsEnvironment import java awt event Act
  • 如何更改文本块背景?

    这是我的xaml structure
  • 如何防止.exe类型文件在网站上传?

    假设我们有一个 example exe 文件 我们首先将该文件放入一个新文件夹中 然后使用任何压缩软件压缩该文件夹 我们可以阻止压缩文件夹在网站中上传吗 我们怎样才能做到这一点 你不能prevent它 因为在提交之前你无法知道浏览器将要提交
  • 为什么我获得了未分配内存的读写权限?

    我对下面代码片段的行为感到困惑 我已经声明了一个 char 指针并将其指向分配大小 1 sizeof char 的内存位置 char src src char malloc 1 sizeof char strcpy src Copy tex
  • 对 Rhino Mocks 中的方法调用进行计数

    所以 我想用比 An Ounce 或 At Least Once 更具体的方法来计算 Rhino Mocks 中的方法调用 有什么机制可以做到这一点吗 诀窍是使用 Repeat Times n 其中 n 是次数 令人惊讶的是 即使该方法的调
  • 如何在活动之前增加 Azure 数据工厂中的参数?

    我正在访问一个 RESTful API 该 API 使用 HTTP 连接器以 50 组为一组进行分页 REST 连接器似乎不支持客户端证书 因此我无法在其中使用分页 我有一个名为的管道变量SkipIndex默认为 0 在 Until 循环内
  • 行为 3 中如何在上下文之间进行通信?

    我无法再在版本 3 中使用 getMainContext 和 getSubcontext alias 版本 3 中上下文之间的通信方式是什么 上下文特征是唯一的方式吗 behat yml default suites guest featu
  • Android 中的电话选择器 api

    我正在尝试使用电话选择器 API 获取电话号码 但得到空响应 这是我的代码 GoogleApiClient googleApiClient new GoogleApiClient Builder this addApi Auth CREDE