我正在尝试获取我在android设备中使用的SIM卡号码。我在版本OREO和Samsung Devices中遇到错误。
btn_no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final HintRequest hintRequest =
new HintRequest.Builder().setPhoneNumberIdentifierSupported(true).build();
try {
final GoogleApiClient googleApiClient =
new GoogleApiClient.Builder(GetSimNumber.this).addApi(Auth.CREDENTIALS_API).build();
final PendingIntent pendingIntent =
Auth.CredentialsApi.getHintPickerIntent(googleApiClient, hintRequest);
startIntentSenderForResult(pendingIntent.getIntentSender(), PHONE_NUMBER_HINT, null, 0, 0, 0);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
我正在使用HintRequest和Google API
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PHONE_NUMBER_HINT && resultCode == RESULT_OK) {
Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
String phoneNumber = credential.getId();
Toast.makeText(this, phoneNumber, Toast.LENGTH_SHORT).show();
}
}
它几乎可以在所有设备上运行,但在Oreo Samsung Device中出现错误。如果有任何建议告诉我...谢谢您
答案 0 :(得分:0)
由Google提供的HintRequest api尚未完全实现其功能,并且存在很多问题,正如开发人员所说,“在OEM设备上他们的像素或连结电话工作正常。”
https://issuetracker.google.com/issues/77884951。
https://github.com/googlesamples/android-credentials/issues/27
许多应用程序仍在使用它通过自己的逻辑来处理特殊情况,例如个人资料页面上的myntra验证号码功能。