J'essaie d'obtenir le téléphone sans utiliser la méthode suivante:
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;
}
Mais chaque fois que je reçois un numéro de téléphone vide. J'ai même essayé d'obtenir le numéro de téléphone de WhatsApp, mais il renvoie "WhatsApp" au lieu du numéro de téléphone. Existe-t-il un autre moyen de résoudre ce problème?
Utilisez le code ci-dessous:
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
Dans AndroidManifest.xml, accordez l'autorisation suivante:
<uses-permission Android:name="Android.permission.READ_PHONE_STATE"/>
Mais rappelez-vous, ce code ne fonctionne pas toujours, car le numéro de téléphone portable dépend de la carte SIM et de l'opérateur réseau/opérateur de téléphone portable.
Essayez également de vous enregistrer Téléphone -> Paramètres -> À propos -> Identité du téléphone , si vous pouvez afficher le numéro là-bas, la probabilité d'obtenir le numéro de téléphone à partir du code ci-dessus est plus élevée. Si vous ne pouvez pas voir le numéro de téléphone dans les paramètres, vous ne pourrez pas obtenir via ce code!