Update: Diese Antwort ist nicht mehr verfügbar, da WhatsApp die Telefonnummer als Kontoname nicht mehr angezeigt hat, bitte ignorieren Sie diese Antwort.
============================================= ===============================
Es war fast 6 Monate und ich glaube, ich sollte Aktualisieren Sie dies mit einer alternativen Lösung, die Sie möglicherweise in Erwägung ziehen.
Ab heute können Sie sich auf eine andere große Anwendung Whatsapp mit AccountManager verlassen. Auf Millionen von Geräten ist diese Anwendung installiert. Wenn Sie die Telefonnummer nicht über TelephonyManager abrufen können, können Sie dies tun.
Berechtigung:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Code:
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();
ArrayList<String> googleAccounts = new ArrayList<String>();
for (Account ac : accounts) {
String acname = ac.name;
String actype = ac.type;
// Take your time to look at all available accounts
System.out.println("Accounts : " + acname + ", " + actype);
}
prüfen actype für whatsapp Konto
if(actype.equals("com.whatsapp")){
String phoneNumber = ac.name;
}
Natürlich kann man nicht bekommen kann, wenn der Benutzer WhatsApp nicht installiert, aber seine es lohnt sich, es trotzdem zu versuchen. Und denken Sie daran, Sie sollten immer Benutzer um Bestätigung bitten.
Haben Sie READ_PHONE_STATE Erlaubnis haben? – 323go
uses-permission android: name = "android.permission.READ_PHONE_STATE" /> –
Das geht nicht. –