当前位置: 首页 > 面试题库 >

进行WhatsApp视讯通话

梁丘俊人
2023-03-14
问题内容

我使用以下代码从我的应用程序发送普通的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: 您需要从联系人中获取相应的whatsapp联系人ID。

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" />

并在运行时将其请求给用户,因为它被归类为“危险”许可。



 类似资料:
  • 为了方便进程内部通讯,进行数据交换。imi v1.2.0 版本新增了内部进程间通讯封装。 使用 Swoole 提供的 sendMessage() 和 onPipeMessage 事件 实现。 在 onPipeMessage 事件中,收到指定结构的数据,就会触发相应事件。 我们只需要监听事件就行了。 介绍 数据结构 [ 'action' => '动作名', // 此字段固定

  • 我正在制作一个VoIP应用程序。即使应用程序在后台,我如何确保来电通知?GoogleFCM仅在应用程序处于前台时工作(可能是由于android电池优化)。Whatsapp和Telegram做了什么来确保近100%的来电通知? 应用程序处于后台时,不会调用消息接收方法。 PS 在浏览Telegram的代码库时,我发现他们总是在前台运行他们的应用程序 <代码> 这就是他们解决通知的方式,还是不仅仅是表

  • 8.1. 概述 进程间通讯描述的是同一台计算机的不同应用程序之间的数据交换机制。 但不包括网络通讯方式。 如果需要经由网络,在彼此运行在不同计算机上的应用程序之间交换数据,请看第 7 章 异步输入输出,该章讲述了 Boost.Asio 库。 本章展示了 Boost.Interprocess 库,它包括众多的类,这些类提供了操作系统相关的进程间通讯接口的抽象层。 虽然不同操作系统的进程间通讯概念非常

  • 其次,当使用摄像机录制视频时,默认情况下它不会被压缩,所以我想whatsapp使用压缩它,而且不需要时间。(尝试了1min的视频1920x1080,大小为125MB,很快变成640x360,大小为5MB,并自动开始上传)..他们怎么可能这样做?而为什么选择640x360,在我看来对于2个异步任务来说速度非常快:压缩+上传。 当我在.mp4-codec:v libx264-crf 23-preset

  • 我使用aws kinesis video stream webRTC在reactjs中进行视频聊天。一切都很好。但是我想把视频存储在s3 Bucket中。我应该如何实现这个视频存储?

  • 我正在开发一个应用程序,它必须通过whatsapp共享mp3文件。 我现在的代码如下: 例如,我可以通过Gmail成功共享,但通过whatsapp无法实现。这是我的代码的问题还是whatsapp不允许你共享mp3文件? 提前感谢!