如何以编程方式获取运行我的Android应用程序的设备的电话号码?
我正在尝试使用以下方法获取电话:
private String getMyPhoneNumber() {
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
//String imsi = mTelephonyMgr.getSubscriberId();
String phnNo = mTelephonyMgr.getLine1Number();
if (phnNo == null) {
phnNo = getNoFromWatsApp();
}
return phnNo;
}
private String getNoFromWatsApp(){
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();
String phoneNumber = "";
for (Account ac : accounts) {
String acname = ac.name;
String actype = ac.type;
// Take your time to look at all available accounts
if(actype.equals("com.whatsapp")) {
phoneNumber = ac.name;
}
}
return phoneNumber;
}
Run Code Online (Sandbox Code Playgroud)
但每次我得到一个空电话号码.我甚至试图从WhatsApp获得电话号码,但它正在返回"WhatsApp"而不是电话号码.有没有其他方法可以解决这个问题?