标签: android-contacts

联系人以哪种格式存储在android中?

我想知道联系人详细信息以哪种格式存储在Android手机或模拟器中.如果有任何机构知道答案,请帮助我.

android android-contacts

12
推荐指数
1
解决办法
9万
查看次数

如何以编程方式创建联系人

可能重复:
如何在android中添加新联系人

public boolean createContact(String name, String number, String email) 
{
        boolean success = true;

        try
        {
            ContentValues contentValues = new ContentValues();

            ContentResolver contentResolver  = getContentResolver();

            contentValues.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
            contentValues.put(Phone.NUMBER, "123254");
            Uri uri = contentResolver.insert(android.provider.ContactsContract.Data.CONTENT_URI, contentValues);

            if(uri==null)
            {
                success = false;
            }

        }
        catch (Exception e) 
        {
            e.printStackTrace();
            success = false;
        }
        return success;
}
Run Code Online (Sandbox Code Playgroud)

我得到NullPointer异常我不知道为什么我还指定了WRITE_CONTACTS权限.请帮我 ............

android contact contacts contactscontract android-contacts

12
推荐指数
1
解决办法
2万
查看次数

唯一的联系人ID

android为每个联系人分配唯一的常量ID吗?
如果没有,有没有办法将这些信息分配给他们?我可以将此ID同步到谷歌联系人吗?

谢谢.

android android-contacts

11
推荐指数
1
解决办法
5727
查看次数

Android - 使用国家/地区代码与号码联系

从传入短信中检索移动号码时,会附加国家/地区代码.
现在,因为数据库中的匹配联系人可能不包含国家代码来获取我正在使用的联系人姓名:

public static String getContactName(String number, Context context) {

    try {

        Uri personUri = Uri.withAppendedPath(
            ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number.trim()));
        String selection = PhoneLookup.NUMBER + " LIKE %" + number.trim() + "%";
        Cursor cur = context.getContentResolver().query(personUri,
            new String[] {
            PhoneLookup.DISPLAY_NAME
        },
            selection, null, null);
        if (cur.moveToFirst()) {
            String str = cur.getString(cur.getColumnIndex(PhoneLookup.DISPLAY_NAME));
            cur.close();
            return str;
        }
    } catch (Exception e) {
        //e.printStackTrace();
        return number;
    }
    return number;
}
Run Code Online (Sandbox Code Playgroud)

如果我传入完全匹配或部分匹配,这将完美地工作.但是,如果我想获取联系人ID我正在使用此代码:

public static Contact getContact(String number, ContentResolver contentResolver) {

    Contact contact = new Contact(-1, number); …
Run Code Online (Sandbox Code Playgroud)

java sql android android-contacts

11
推荐指数
2
解决办法
8804
查看次数

是否可以在结束预付费电话后从对话中读取通话费用历史记录?

是否有可能处理预付费用户收到的通话费对话中显示的数据.我想在我的sqlite数据库中保存所有余额减少以及呼叫持续时间.

在此输入图像描述

android ussd broadcastreceiver android-contacts

11
推荐指数
1
解决办法
2140
查看次数

直接从联系人选择器意图中选择联系人

您好我想从我们的默认联系簿意图中选择一个联系人.我尝试了几种方法来做到这一点.请在下面找到代码.所有这些代码的问题在于,他们打开一个中间文档屏幕,用户必须选择联系人,而不是打开联系簿.

private void openContactIntent() {
     Intent intent = new Intent(Intent.ACTION_GET_CONTENT, ContactsContract.Contacts.CONTENT_URI);
     intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
     startActivityForResult(intent, REQ_CONTACT_DIRECTORY);
}
Run Code Online (Sandbox Code Playgroud)

我也试过了

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
Run Code Online (Sandbox Code Playgroud)

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
startActivityForResult(intent, PICK_CONTACT); 
Run Code Online (Sandbox Code Playgroud)

我所看到的中间屏幕是 在此输入图像描述

android android-intent android-contacts android-implicit-intent contactpicker

11
推荐指数
4
解决办法
1万
查看次数

Android:使用查找键管理联系人

我目前正在编写一个允许保存草稿的应用程序(使用android版本> = 2.0).每个草案都通过联系人与联系人联系ContactsContract.Contacts.LOOKUP_KEY.我的问题是,如果我更改联系人的姓名,查找键也会更改.这是这样的吗?

那么我需要一个查找键呢?我认为查找键永远不会改变,现在它无论如何都会改变.我对这种行为感到困惑......

有人可以向我解释如何永久链接到联系人吗?我应该使用ID而不是查找键吗?

提前致谢.

android android-contacts

10
推荐指数
1
解决办法
1万
查看次数

将自定义mime类型添加到android中的联系人

我正在尝试为他选择的每个联系人编写一个为用户存储数据的应用程序.我想向每个用户添加一个custom provider(像facebook一样),按下它将打开我的应用程序并允许用户查看存储的数据.我按照本指南创建了一个自定义提供程序:http: //www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2/

但是custom provider没有出现在我的联系人列表中,我试图改变我MIME_TYPEvnd.com.google.cursor.item/contact_user_defined_field 那个也没有帮助(当使用第三方应用时它显示我的提供者但没有我的图标)

我的联系定义是这样的:

<ContactsSource xmlns:android="http://schemas.android.com/apk/res/android">
 <ContactsDataKind
  android:icon="@drawable/ic_launcher"
  android:mimeType="vnd.android.cursor.item/vnd.MyPackageName.profile"
  android:summaryColumn="data2"
  android:detailColumn="data3"
  android:detailSocialSummary="true" />
</ContactsSource>
Run Code Online (Sandbox Code Playgroud)

我的相关代码是这样的:

String MIME_TYPE  "vnd.android.cursor.item/vnd.MyPackageName.profile";

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex =ops.size();//(int)Contact_RAW_ID;
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
   .withValue(RawContacts.ACCOUNT_TYPE, null)
   .withValue(RawContacts.ACCOUNT_NAME,null )
   .build());

ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
   .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
   .withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)
   .withValue(Phone.NUMBER, "9X-XXXXXXXXX")
   .build());

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
   .withValueBackReference(Data.RAW_CONTACT_ID, 0)
   .withValue(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE)
   .withValue(StructuredName.DISPLAY_NAME, "John Doe")
   .build());  

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
   .withValueBackReference(Data.RAW_CONTACT_ID, 0)
   .withValue(Data.MIMETYPE,Email.CONTENT_ITEM_TYPE)
   .withValue(Email.ADDRESS, "John Doe")
   .build());

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
   .withValueBackReference(Data.RAW_CONTACT_ID, 0)
   .withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)
   .withValue(Phone.NUMBER, "1234567890")
   .build());

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
    .withValueBackReference(Data.RAW_CONTACT_ID, 0)
    .withValue(Data.MIMETYPE,MIME_TYPE)
    .withValue(Data.DATA1, "Custom …
Run Code Online (Sandbox Code Playgroud)

android mime-types android-contentprovider android-contacts

10
推荐指数
0
解决办法
4834
查看次数

使用CursorLoader获取电子邮件会导致电子邮件重复

我正在尝试使用联系人的电子邮件ID.为此,我使用Cursor Loader.有一个问题我也得到重复的电子邮件ID.如何删除电子邮件重复项.我应该使用原始查询"SELECT DISTINCT"而不是使用CursorLoader还是有其他解决方案?

@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
    String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Email.DATA};
    String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + "  COLLATE LOCALIZED ASC";
    String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP +"='1' AND " + Email.DATA +" IS NOT NULL AND " + Email.DATA +" != \"\" " ;

    //showing only visible contacts  
    String[] selectionArgs = null;
    return new CursorLoader(this, ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection, selection, selectionArgs, sortOrder);
}
Run Code Online (Sandbox Code Playgroud)

android android-contacts android-cursorloader

10
推荐指数
1
解决办法
3315
查看次数

通过Android中的PHOTO_FILE_ID将联系人的图片更改为大型照片

这似乎适用于小图像:

ContentValues values = new ContentValues();

values.put(ContactsContract.Data.RAW_CONTACT_ID, id);
values.put(ContactsContract.Data.IS_SUPER_PRIMARY, 1);
values.put(ContactsContract.CommonDataKinds.Photo.PHOTO, photo);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);
if (photoRow >= 0) {
    context.getContentResolver().update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data._ID + " = " + photoRow, null);
} else {
    context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
}
Run Code Online (Sandbox Code Playgroud)

文档我意识到,对于大图像我需要设置PHOTO_FILE_ID,所以我可以替换:

ContactsContract.CommonDataKinds.Photo.PHOTO
Run Code Online (Sandbox Code Playgroud)

有:

ContactsContract.CommonDataKinds.Photo.PHOTO_FILE_ID
Run Code Online (Sandbox Code Playgroud)

但是,我需要提供PHOTO_FILE_ID而不是原始数据.我的问题:

  1. 如何保存照片(byte [])并获取PHOTO_FILE_ID?
  2. 如果已有照片可用(照片不是PHOTO_FILE_ID).我是否需要删除它才能看到大图像,或者大图像是否优先,如果不是,我该如何删除它?

java android android-contacts

10
推荐指数
1
解决办法
1678
查看次数