在Android中以编程方式获取电话号码
在我的Android应用程序中,我需要显示设备中可用的Sim卡的电话号码 我尝试了以下代码在Android中以编程方式获取电话号码,android,Android,在我的Android应用程序中,我需要显示设备中可用的Sim卡的电话号码 我尝试了以下代码 private String getPhone() { TelephonyManager phoneMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); if (ActivityCompat.checkSelfPermission(activity, wantPermission) != Package
private String getPhone() {
TelephonyManager phoneMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (ActivityCompat.checkSelfPermission(activity, wantPermission) != PackageManager.PERMISSION_GRANTED) {
return "";
}
return phoneMgr.getLine1Number();
}
及
if(Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.M){
List subscription=SubscriptionManager.from(getApplicationContext()).getActiveSubscriptionInfoList();
对于(int i=0;i
}
但两者都只返回null或空字符串
我还添加了清单许可
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
你能帮帮我吗
谢谢。一些电话公司不允许我从sim卡上获取电话号码,因为我在过去的项目中遇到了同样的问题 (在过去的项目中,我想在simcard号码上发送OTP。用户无法键入其号码。这是出于安全目的。)
所以有些手机会给你正确的输出,而剩下的手机会给你空的输出,我想你无法从android上获得手机号码。有些sp允许读取电话号码,但大多数sp不允许。如果该号码存储在sim卡上,则可能的重复项只会返回该号码。否则它是空的这是获得电话号码的最佳反应
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>