
[英]Android - What can I do retrieving the serial number of an Android phone?
[英]Android HintPicker results in 1002 while retrieving phone number
更新: 克里斯托弗·布尔的回答摆脱了不推荐使用的电话。 尽管如此,真正的问题仍然是一样的。 (我的设备的 API 级别是 24 和 27)
我的两部手机都工作正常(接听电话等),我真的不明白它怎么找不到电话号码。 此外,我无法控制的轻微负载 animation 真的不鼓励我使用这个 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, 0, 0, 0,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 相关的内容。 问题可能就像不应用插件一样简单。
我使用的两个设备都是三星的。 如果这无法解决,是否有其他方法可以在未经许可的情况下检索电话号码? 如果我获得电话 state 许可但我的应用程序主要不是消息应用程序,我可以发布我的应用程序吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.