Android设备双SIM卡号码显示

时间:2018-10-23 10:09:58

标签: android android-studio

我正在尝试获取我在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中出现错误。如果有任何建议告诉我...谢谢您

1 个答案:

答案 0 :(得分:0)

由Google提供的HintRequest api尚未完全实现其功能,并且存在很多问题,正如开发人员所说,“在OEM设备上他们的像素或连结电话工作正常。”

https://issuetracker.google.com/issues/77884951

https://github.com/googlesamples/android-credentials/issues/27

许多应用程序仍在使用它通过自己的逻辑来处理特殊情况,例如个人资料页面上的myntra验证号码功能。