标签: android-contacts

访问Android联系人组名称

你能告诉我如何以程序方式存储在我们的Android手机中的联系人组吗?

android android-contacts

8
推荐指数
2
解决办法
6700
查看次数

Android,如何获取Facebook/Twitter /等联系人照片

我想为应用中的联系人加载联系人照片,我知道如何做到这一点,因为有很多教程要做.但这些方法(股票机器人)似乎无法撤回第三方同步的照片我想知道是否有一个坚实可靠的方式来本地做这个.

这已被问过很多次了,我可以把答案放在左边和右边.唯一的问题是它们实际上并没有解决问题.只创造解决方案.

经过一番广泛的搜索,我发现了这个:

android中有一个错误,阻止我们检索联系人照片(几乎所有丢失的联系人照片都是facebook个人资料照片).要解决此问题,我们必须通过共享证书对APK进行签名,并强制应用在shared-uid中运行.

我在https://sites.google.com/site/t2k269group/development-diary/load-contact-photo上发现了这个问题,任何人都可以详细说明如何使用共享密钥进行签名,如果这样可行的话?

如果其他任何人真的有一个可靠的解决方案加载联系人照片,无论他们同步什么.

问题:是否有可靠的方法来加载包含同步照片的联系人照片,而不仅仅是手机上设置的照片?

提前致谢.干杯,克里斯

twitter android facebook android-contacts

8
推荐指数
1
解决办法
2266
查看次数

获取联系人的姓名而不是单个显示名称?

我目前正在使用Android联系人内容提供商,目前可以使用以下代码访问联系人完整显示名称而不会出现问题:

String[] PROJECTION = new String[] {
         ContactsContract.Contacts._ID,
         ContactsContract.Contacts.DISPLAY_NAME,
         ContactsContract.Contacts.HAS_PHONE_NUMBER,
        };
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";

String SELECTION = "LOWER(" + ContactsContract.Contacts.DISPLAY_NAME + ")" 
    + " LIKE '" + constraint + "%' " + "and " + 
        ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'";

Cursor cur = managedQuery(ContactsContract.Contacts.CONTENT_URI, 
                PROJECTION, SELECTION, null, sortOrder);
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够分别获得联系人名字和姓氏,我试图使用StructuredName试图获得这个,但我似乎无法让它工作.

任何人都可以指出我正确的方向如何正确使用StructuredName将名称拆分为First和Last?

更新:

根据hovanessyan的建议,我尝试了以下方法:

    String[] PROJECTION = new String[] {
            ContactsContract.Data._ID,
            ContactsContract.Data.DISPLAY_NAME,
            ContactsContract.Data.HAS_PHONE_NUMBER,
    };

    String SELECTION = ContactsContract.CommonDataKinds.StructuredName.IN_VISIBLE_GROUP + " = '1'";

    String sortOrder = ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME …
Run Code Online (Sandbox Code Playgroud)

android cursor contactscontract android-contacts

8
推荐指数
3
解决办法
9999
查看次数

ContactsContract如何枚举所有可用字段?

在我的应用程序中,我需要为用户提供查看/编辑ContactsContract的所有可用字段的机会.

我应该如何获取/查看所有可用字段 - 包括任何自定义字段?

android contacts android-contacts

8
推荐指数
1
解决办法
2576
查看次数

Android 6.0(Marshmallow)READ_CONTACTS权限允许在权限被拒绝时读取联系人的姓名

我想检查新权限模型的工作原理,所以在应用程序的设置中我禁用了Contacts.然后我去app并尝试阅读Contacts...它有点工作:

try {
    Uri result = data.getData();
    int contentIdx;
    cursor = getContentResolver().query(result, null, null, null, null);
    contentIdx = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
    if(cursor.moveToFirst()) {
        content = cursor.getInt(contentIdx);
    }

    if(content > 0) {
        contentIdx = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
        if(cursor.moveToFirst()) {
            name = cursor.getString(contentIdx);
        }
        contentIdx = cursor.getColumnIndex(BaseColumns._ID);
        if(cursor.moveToFirst()) {
            content = cursor.getLong(contentIdx);
        }
        cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] { Phone.NUMBER }, Data.CONTACT_ID + "=?", new String[] { String.valueOf(content) }, null);
        if(cursor.moveToFirst()) {
            number = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
        }
    }
} catch (Exception e) { …
Run Code Online (Sandbox Code Playgroud)

android android-contacts android-permissions android-6.0-marshmallow

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

如何在android上注册监听任何联系人更改

如何在Android 上注册监听任何联系人(添加/删除联系人,更改电子邮件/电话)的更改?

谢谢.

java android android-contacts

7
推荐指数
1
解决办法
913
查看次数

ContactsContract.CommonDataKinds.StructuredName的问题

在查询联系人数据时,我得到了大部分工作.我正在与StructuredName和Organization斗争.他们不适合我.

如果您不介意,请查看代码.它是手工制作的,并且删除了大量错误检查,以使其尽可能小地在此处发布."不工作"的评论是对我不起作用的部分.

两个前导if()是onActivityResult的一部分,我在联系人选择结束时收到数据.通过以下方式拨打电话:

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

非常感谢HJW

if (requestCode == Main.DIALOG_PICKCONTACT) {
 if (resultCode == RESULT_OK) {
  int i;
  String s;
  Cursor cursorContacts = managedQuery(intent.getData(),
      null,
      null,
      null,
      null);
  if (cursorContacts != null) {
   if (cursorContacts.moveToNext()) {
    ContentResolver contentResolver = getContentResolver();
    String contactId = cursorContacts.getString(cursorContacts.getColumnIndex(ContactsContract.Contacts._ID));
    i = cursorContacts.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
    // cursorContacts.getString(i); *** is DISPLAY_NAME
    Cursor cursorEmail = contentResolver.query(
        ContactsContract.CommonDataKinds.Email.CONTENT_URI,
        null,
        ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
        new String[] { contactId },
        null);
    if (cursorEmail != null) {
     while …
Run Code Online (Sandbox Code Playgroud)

android android-contacts

7
推荐指数
1
解决办法
9327
查看次数

Android:如何在联系人应用程序中使用字母索引器和fastscroll填充ListView.

我想在联系人应用程序中使用fastscroll和albhabet索引器实现ListView.我正在使用SimpleAdapter来填充ListView.从图像中可以看出,通过从右侧的字母索引器中选择一个字母,listView选项将转到相应的ListItem.怎么做到这一点?请帮忙.

在此输入图像描述

android android-listview android-contacts

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

Android - 如何从通话记录中获取联系人?

我试图从通话记录中获取联系人.我可以使用以下代码从主要联​​系人处获取联系电话:

    public void getContacts(View view) {

    Intent intentContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
    startActivityForResult(intentContact, 0);

}

public void onActivityResult(int requestCode, int resultCode, Intent intent)
{

    if (requestCode == 0)
    {
        try {
        to.setText(getContactInfo(intent));
        } catch(NullPointerException e) {
                 // Do nothing ;)
        }

    }

}
protected String getContactInfo(Intent intent)
{
    String phoneNumber = to.getText().toString();
    Cursor cursor =  managedQuery(intent.getData(), null, null, null, null);
    while (cursor.moveToNext())
    {
        String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
       String name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
      if(phoneNumber.endsWith(">"))
          phoneNumber += ", "+name;
        else
         phoneNumber += name; …
Run Code Online (Sandbox Code Playgroud)

java android android-contacts

7
推荐指数
1
解决办法
3513
查看次数

通过意图添加多个电话号码的新联系人

我想添加一个新的联系人ContactsContract.Intents.Insert.但问题是我不知道有多少电话号码.当我明白我可以使用只传递三个电话号码PHONE,SECONDARY_PHONE,TERTIARY_PHONE常量.有没有办法传递三个以上的数字?

android android-intent android-contacts

7
推荐指数
1
解决办法
1980
查看次数