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

android-make whatsapp调用

满和安
2023-03-14
问题内容

我想对特定用户进行WhatsApp呼叫。我试过了,但不起作用:

Uri uri = Uri.parse("callto:" + phoneNUmber);
Intent i = new Intent(Intent.ACTION_CALL, uri);
i.setPackage("com.whatsapp");
startActivity(i);

我知道如何创建WhatsApp消息,代码相似并且有效:

Uri uri = Uri.parse("smsto:" + phoneNUmber);
Intent i = new Intent(Intent.ACTION_SENDTO, uri);
i.setPackage("com.whatsapp");
startActivity(i);

问题答案:

一个简单的解决方法是,查询ContactContract.Data的_id和MIME类型。

ContentResolver resolver = context.getContentResolver();  
cursor = resolver.query(
            ContactsContract.Data.CONTENT_URI,
            null, null, null,
            ContactsContract.Contacts.DISPLAY_NAME);

//Now read data from cursor like

while (cursor.moveToNext()) {
      long _id = cursor.getLong(cursor.getColumnIndex(ContactsContract.Data._ID));
      String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
      String mimeType = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.MIMETYPE));

      Log.d("Data", _id+ " "+ displayName + " " + mimeType );

}

输出将如下所示

12561雪vnd.android.cursor.item / vnd.com.whatsapp.profile

12562雪vnd.android.cursor.item / vnd.com.whatsapp.voip.call

现在,仅将MIME类型为_Id的内容保存在DB或其他地方
vnd.android.cursor.item/vnd.com.whatsapp.voip.call

然后像这样用这些联系人发起Whatsapp呼叫

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

// the _ids you save goes here at the end of /data/12562     
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);


 类似资料:
  • 有没有一种方法可以调试一个被调用的方法? 此代码调用

  • 主要内容:本节引言:,1.WebService简介,2.去哪里获取WebService服务,3.第三方jar包的准备,4.获取相关的一些参数,5.注册并启用相关WEB服务,6.调用WebService的代码示例,参考代码下载:,本节小结:本节引言: 经过前面的学习,数据请求,数据解析,文件上传下载等,应该满足大家与服务器交互的基本 需求了,而本节给大家介绍的Android调用WebService,其实这玩意有点类似于一些给我们提供 原始数据API服务的数据平台,比如聚合数据!而WebServic

  • 我试图实现marshmallow的权限支持,但我在“OnRequestPermissionsResult”中的代码从未被调用。代码的“onCreate”和“onMapReady”部分工作正常。检查设备是否具有权限并请求权限可以正常工作。 这是我的活动: }

  • 问题内容: 我正在尝试使用Okhttp库通过API将我的Android应用程序连接到服务器。 单击按钮就会发生我的API调用,并且我收到以下 android.os.NetworkOnMainThreadException 。我了解这是由于我正在尝试在主线程上进行网络调用,但是我也正努力在Android上寻找一种干净的解决方案,以使该代码如何使用另一个线程(异步调用)。 上面是我的代码,并且在行上抛

  • 问题内容: 我们如何从Android调用javascript?我有一个我想使用的javascript库,我想调用javascript函数并将结果值传递给android java代码。从现在开始还没有找到答案。我设法从javascript调用android代码,但我想反过来。 问题答案: 有一个hack: 绑定一些Java对象,以便可以使用WebView从Javascript调用它: 通过以下方式强

  • 问题内容: 我正在尝试调用我编写的方法。它只编译一行… 我不是最好的Java专家,但我认为像这样调用该方法将得到响应。不显示“ Hello”,但是… 如何正确调用该方法? 问题答案: 编辑:毫无疑问,这个答案仅解决了为什么您遇到编译时错误。它 没有 解决您在Android中的哪个线程以及什么时间应该做什么。 我个人建议您暂时放下Android,在更简单的环境(例如控制台应用程序)中学习Java,然