如何解决检索电话号码时,Android HintPicker 结果为 1002
更新:Christopher Bull's answer 去掉不推荐使用的调用。尽管如此,真正的问题仍然是一样的。 (我的设备的 API 级别是 24 和 27)
我的两部手机都工作正常(接听电话等),我真的不明白它怎么找不到电话号码。此外,我无法控制的轻微加载动画真的不鼓励我使用这个 api。是否有任何替代方案(不需要权限)。我也害怕获得 PHONE_READ_STATE 权限,因为我的应用不是消息应用,我不希望它被拒绝,这会发生吗?
我试图在我的 android 应用程序中获取用户的电话号码,而无需请求任何许可。 我看到 HintPickerIntent 用于此目的并决定实现该功能(使用大量已弃用的功能)。
奇怪的是,我用 2 部不同的带有 SIM 卡的真实手机尝试了这个。他们都有一个结果代码 1002 并显示一个进度条,该进度条在没有打开任何弹出窗口的情况下迅速消失。
但是其中一个有一个完全空的 Intent
和 action = android.intent.action.MAIN
mLaunchParams = MultiScreenLaunchParams
这是我的代码(它们都在活动中运行,但如果这是我真正怀疑的问题,我可以将其移动到片段..)
googleApiClient = GoogleApiClient.Builder(this)
.addApi(Auth.CREDENTIALS_API)
.addConnectionCallbacks((this@MainActivity as GoogleApiClient.ConnectionCallbacks))
.addOnConnectionFailedListener((this@MainActivity as GoogleApiClient.OnConnectionFailedListener))
.build()
googleApiClient.connect() //Runs in onCreate
override fun onConnected(p0: Bundle?) {
val hintRequest = HintRequest.Builder()
.setPhoneNumberIdentifierSupported(true)
.build()
val intent = Auth.CredentialsApi.getHintPickerIntent(
googleApiClient,hintRequest
)
startIntentSenderForResult(
intent.intentSender,500,null,Bundle()
)
}
override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
super.onActivityResult(requestCode,resultCode,data)
if (requestCode == 500) {
if (resultCode == Activity.RESULT_OK) {
val credential: Credential? = data!!.getParcelableExtra(Credential.EXTRA_KEY)
val id = credential?.getId()// will need to process phone number string
}
}
}
//build.gradle
api 'com.google.android.gms:play-services-auth:19.0.0'
api 'com.google.android.gms:play-services-auth-api-phone:17.5.0'
implementation 'com.google.android.gms:play-services-identity:17.0.0'
implementation 'com.google.android.gms:play-services-base:17.0.0'
这是一个新项目,所以我在 build.gradle 中没有其他与 google-play-services 相关的内容。问题可能就像不应用插件一样简单。
Also a related issue in tracker
我使用的两台设备都是三星。如果无法修复,是否还有其他方法可以在未经许可的情况下检索电话号码?如果我获得了手机状态许可,但我的应用程序不是主要的消息应用程序,我可以发布我的应用程序吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。