Сделайте видеозвонок в WhatsApp - PullRequest
0 голосов
/ 27 июня 2018

Я использую этот код для отправки простого текстового сообщения WhatsApp из моего приложения:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);

Как я могу выполнить видеовызов WhatsApp из моего приложения?

1 Ответ

0 голосов
/ 27 июня 2018

Предполагая, что вы уже получили контактный номер.

Шаг 1: вам нужно получить соответствующий контактный идентификатор WhatsApp из контактов.

String contactNumber = "Your Contact Number"; // to change with real value

Cursor cursor = context.getContentResolver ()
    .query (
        ContactsContract.Data.CONTENT_URI,
        new String [] { ContactsContract.Data._ID },
        ContactsContract.RawContacts.ACCOUNT_TYPE + " = 'com.whatsapp' " +
            "AND " + ContactsContract.Data.MIMETYPE + " = 'vnd.android.cursor.item/vnd.com.whatsapp.video.call' " +
            "AND " + ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE '%" + contactNumber + "%'",
        null,
        ContactsContract.Contacts.DISPLAY_NAME
    );

if (cursor == null) {
    // throw an exception
}

long id = -1;
while (cursor.moveToNext()) {
    id = cursor.getLong (cursor.getColumnIndex (ContactsContract.Data._ID));
}

if (!cursor.isClosed ()) {
    cursor.close ();
}

Шаг 2: Вы делаете вызов, используя видео намерения WhatsApp.

Intent intent = new Intent ();
intent.setAction (Intent.ACTION_VIEW);

intent.setDataAndType (Uri.parse ("content://com.android.contacts/data/" + id), "vnd.android.cursor.item/vnd.com.whatsapp.voip.call");
intent.setPackage ("com.whatsapp");

startActivity (intent);

Примечание: Очевидно, что код запроса должен находиться в фоновом потоке. Выше приведено лишь краткое изложение того, как запустить видеовызов WhatsApp.

О, и не забудьте добавить разрешение на чтение контакта

<uses-permission android:name="android.permission.READ_CONTACTS" />

и запросите его у пользователей во время выполнения, поскольку оно классифицируется как «опасное» разрешение.

...