2016-08-04 23 views
0

こんにちは私は新しいGmailグループを作成して連絡先を追加しようとしています。私はグループの作成に成功しましたが、連絡先が追加されていません。私はどこに間違っていたのか分からない。私のコードをここに掲載して助けてください。私が見る新しいグループにandroidの新しいグループに連絡先を追加する

public void addContactsToPhoneGroups(String contact_id, String groupId, String groupName) { 

    System.out.println("ContactId: " + contact_id); 
    System.out.println("GroupId: " + groupId); 
    ArrayList<ContentProviderOperation> ops = new ArrayList<>(); 

    ContentValues values = new ContentValues();} 
    values.put(ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID, 
      contact_id); 
    values.put(
      ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID, 
      groupId); 
    values 
      .put(
        ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE, 
        ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE); 

    getContentResolver().insert(
      ContactsContract.Data.CONTENT_URI, values); 

答えて

0

を連絡先を追加し、私はdoubt.HowがGROUP_ROW_IDに関連し、このContactsContract.Groups._IDである持っているグループ

public String createGroupInPhone() { 

    String[] GROUP_PROJECTION = new String[]{ContactsContract.Groups._ID, ContactsContract.Groups.TITLE}; 
    ContentValues contentValues = null; 

    try { 


     ContentResolver cr = this.getContentResolver(); 
     contentValues = new ContentValues(); 

     contentValues.put(ContactsContract.Groups.TITLE, groupName); 
     contentValues.put(ContactsContract.Groups.SHOULD_SYNC, true); 
     contentValues.put(ContactsContract.Groups.GROUP_VISIBLE, 1); 
     contentValues.put(ContactsContract.Groups.ACCOUNT_TYPE, "com.google"); 
     contentValues.put(ContactsContract.Groups.ACCOUNT_NAME, "[email protected]"); 
     cr.insert(ContactsContract.Groups.CONTENT_URI, contentValues); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    String groupID; 
    Cursor getGroupID_Cursor; 
    getGroupID_Cursor = this.getContentResolver().query(ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION, ContactsContract.Groups.TITLE + "=?", new String[]{groupName}, null); 

    getGroupID_Cursor.moveToFirst(); 
    groupID = (getGroupID_Cursor.getString(getGroupID_Cursor.getColumnIndex(ContactsContract.Groups._ID))); 
    String groupTitle = (getGroupID_Cursor.getString(getGroupID_Cursor.getColumnIndex(ContactsContract.Groups.TITLE))); 
    System.out.println("Group Title: " + groupTitle); 
    getGroupID_Cursor.close(); 
    return groupID; 
} 

を作成

、GROUP_SOURCE_ID

挿入された要素のIDを取得するために後続のクエリを実行するサンプルを投稿する人がたくさんいます。

ただし、挿入からの戻りは、挿入された行のUriです。

なぜDBへの呼び出しを浪費するのですか?

long id = -1; 
Uri insertedUri = getContentResolver().insert(...); 
if (insertedUri!=null) { 
    id = ContentUris.parseId(insertedUri); 
} 
1

1)

public static void createNewGroup(String name,@Nullable String accountName, @Nullable String accountType) 
    { 
     try 
    { 
     ContentValues groupValues = new ContentValues(); 
     groupValues.put(Groups.TITLE, name); 
     groupValues.put(Groups.GROUP_VISIBLE, 1); 
     //groupValues.put(Settings.UNGROUPED_VISIBLE, true); 
     if(accountType != null && accountName != null) 
     { 
      groupValues.put(Groups.ACCOUNT_TYPE, accountType); 
      groupValues.put(Groups.ACCOUNT_NAME, accountName); 
      groupValues.put(Groups.SHOULD_SYNC, true); 

     } 
     else 
     { 
      groupValues.putNull(Groups.ACCOUNT_TYPE); 
      groupValues.putNull(Groups.ACCOUNT_NAME); 
      groupValues.put(Groups.SHOULD_SYNC, false); 

     } 
     getContentResolver().insert(Groups.CONTENT_URI, groupValues); 
     return true; 
    } 
    catch (Exception e){} 
    } 

2)

public static Uri addContactToGroup(String rawContactId,String groupId) 
    { 
     try 
     { 
      ContentValues values = new ContentValues(); 
      values.put(Data.RAW_CONTACT_ID, rawContactId); 
      values.put(GroupMembership.GROUP_ROW_ID, groupId); 
      values.put(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE); 

      return getContentResolver().insert(Data.CONTENT_URI, values); 
     } 
     catch (Exception e) 
     {} 
     return Uri.EMPTY; 
    } 

3)

public static Cursor getContactGroupId(String contactId) 
    { 
     Uri uri = ContactsContract.Data.CONTENT_URI; 
     String[] columns = new String[] { GroupMembership.GROUP_ROW_ID }; 
     String where = Data.CONTACT_ID + " = ? AND " + Data.MIMETYPE + " = ?"; 
     String[] args = new String[] {contactId, GroupMembership.CONTENT_ITEM_TYPE }; 
     return Cursor contacts = getContentResolver().query(uri, columns, where, arg, null); 
    } 

4)

public static Cursor getGroupsList(@Nullable String[] project,@Nullable String where,@Nullable String[] args,@Nullable String sort) 
    { 

     return getContentResolver().query(Groups.CONTENT_URI, project, where, args, sort); 
    } 
+0

非常に良い例、私はaddContactToGroupについて質問する必要があります、どのように新しい連絡先を追加するには?私はこの機能の使い方について何か迷っています。 https://stackoverflow.com/questions/46544711/add-new-group-programmability-androidに関する質問もあります –

関連する問題