gpt4 book ai didi

java - 将电话号码或 CONTACT_ID 从 Android 联系方式传递到 Activity (类似 Whatsapp)

转载 作者:太空宇宙 更新时间:2023-11-04 09:38:15 26 4
gpt4 key购买 nike

我想要实现的是在 android 图书联系方式中添加我的应用程序的快捷方式,类似于 Whatsapp 正在做的事情。

我一直在遵循这个教程:http://blogs.quovantis.com/syncing-contacts-with-an-android-application-2/它运行良好,但作者没有展示如何将数据从联系人详细信息传递到 ViewingActivity:https://github.com/ajkh35/ContactsDemo/blob/master/app/src/main/java/com/example/ajay/contacts_4/ViewingActivity.java

文章下面有一些评论,但作者没有具体回答,找不到任何有用的内容

    Uri data = getIntent().getData(); //content://com.android.contacts/data/1169
List<String> params = data.getPathSegments();
String first = params.get(0);
String second = params.get(1);

第二个参数中传递了一些数字,但它不是 CONTACT_ID 或 RAW_CONTACT_ID。有什么帮助吗?

最佳答案

好的,看来您从 Contacts 应用获取的 Uri 是一个 Data uri。

Data 行包含有关特定 RawContact 的特定数据项(例如电话号码或电子邮件)的信息,因此单个 Data 行“属于”单个 RawContact,而该 RawContact 又“属于”单个 Contact

幸运的是,ContactsContract API 允许 implicit joins查询 Data 表时,您可以执行以下操作:

Uri dataUri = getIntent().getData(); //content://com.android.contacts/data/1169

String[] projection = new String[]{
Data.CONTACT_ID,
Data.RAW_CONTACT_ID,
Data.DISPLAY_NAME,
Data.MIMETYPE,
Data.DATA1};

Cursor cur = getContentResolver().query(dataUri, projection, null, null, null);
cur.moveToFirst(); // there should always be exactly one result, since we have a specific data uri here

Log.i("Contact Info", "Got info: id=" + cur.getLong(0) + ", raw-id=" + cur.getLong(1) + ", " + cur.getString(2) + ", " + cur.getString(3) + ", " + cur.getString(4));

cur.close();

关于java - 将电话号码或 CONTACT_ID 从 Android 联系方式传递到 Activity (类似 Whatsapp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56238252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com