我正在开发一个Android应用程序。因为我需要自动获取用户移动SIM卡号码以进行呼叫。但是我在获取用户的手机号码时遇到了问题。 我试过这个。
TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String getSimSerialNumber = telemamanger.getSimSerialNumber();
String deviceID = telemamanger.getDeviceId();
String getSimNumber = telemamanger.getLine1Number();
和这个
TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
String network;
ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo().getTypeName().equals("MOBILE"))
network = "cellnetwork/4G";
else if(cm.getActiveNetworkInfo().getTypeName().equals("WIFI"))
network = "wifi";
else
network ="na";
String uphone = tm.getLine1Number();
Toast.makeText(getApplicationContext(),uphone+" "+network,Toast.LENGTH_LONG).show();
在这些中,除了手机号码,我得到了我想要的所有信息。 是否有任何替代方法来获取像BHIM应用程序中的手机号码。 在BHIM app中,他们会自动获取手机号码(无论是单人还是双人)。
答案 0 :(得分:0)
当然!
这些是您可以在SubscriptionManager和SubscriptionInfo上获得的一些信息。
虽然我不确定您需要在第三方应用上执行哪些权限。这就是我在公司框架上的表现:
private void fillSimNumber(TelephonyManager tm, SubscriptionInfo subscriptionInfo) {
final String rawNumber = tm.getLine1Number(subscriptionInfo.getSubscriptionId());
if (!TextUtils.isEmpty(rawNumber)) {
mSimNumber.setText(rawNumber);
}
}
最好的运气!