Как я могу получить свой номер whatsapp?

Я разрабатываю приложение для Android и хочу прочитать номер телефона whatsapp, настроенный на клиентском устройстве.

Пробовал следующий код:

AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();

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);
}

if(actype.equals("com.whatsapp")){
    String phoneNumber = ac.name;
}

Я также установил это разрешение: <uses-permission android:name="android.permission.GET_ACCOUNTS" />

но номер телефона возвращает только "Whatsapp"

Мне нужен номер телефона пользователя whatsapp в качестве записи в моей базе данных. Как я могу получить этот номер телефона?

Ответ 1

Выполните следующие действия:

  • Вам нужен идентификатор rawcontact WhatsApp этого контакта.
  • Запрос ContactsContract.Data таблицы с mimetype = "vnd.android.cursor.item/vnd.com.whatsapp.profile" с этим rawcontact id.
  • Столбец DATA3 - это число WhatsApp.

Ответ 2

WhatsApp обновили свой процесс, и они больше не создают учетную запись с использованием номера телефона в качестве имени учетной записи, что является трюком, на который этот код полагался.

Я не верю, что теперь можно найти номер телефона WhatsApp вне приложения WhatsApp.