Как получить программный код устройства нет
Я пытаюсь получить телефон без использования следующего метода:
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;
}
Но каждый раз, когда я получаю телефон без пробелов. Я даже пытался получить телефон от wats, но его удержание "WatsApp" вместо телефона нет.
Есть ли другой способ решить эту проблему?
Ответы
Ответ 1
Используйте код ниже:
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
В AndroidManifest.xml дайте следующее разрешение:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
Но помните, что этот код не всегда работает, поскольку номер сотового телефона зависит от SIM-карты и оператора сети/оператора сотовой связи.
Кроме того, попробуйте проверить Телефон → Настройки → О программе → Идентификация телефона. Если вы можете просмотреть номер там, вероятность получить номер телефона выше кода выше. Если вы не можете просмотреть номер телефона в настройках, вы не сможете получить этот код!