1

特定の連絡先 ID を使用して連絡先データベースに連絡先を追加しようとしています (連絡先の詳細を取得するために vcf ファイルを使用しています)。連絡先 ID はファイル名 (Dani_13) に保存されており、この連絡先をその連絡先の元のエントリ。私は以下のコードを使用していますが、機能していません:

String [] s = (vcard_file.getName()).split(Pattern.quote("_")); 
         String [] s2 = s[(s.length)-1].split(Pattern.quote("."));
        // int rawContactInsertIndex=ops.size(); 
         int id = Integer.getInteger(s2[0]);
         ops.add(ContentProviderOperation
                 .newInsert(ContactsContract.RawContacts.CONTENT_URI)
                 .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
                 .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
                 .build());
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)              
                       .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, id)
                      .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                      .withValue(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS, null)
                      .withValue(ContactsContract.CommonDataKinds.StructuredPostal.TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK)
                      .withValue(ContactsContract.CommonDataKinds.StructuredPostal.STREET, street)
                      .withValue(ContactsContract.CommonDataKinds.StructuredPostal.CITY, city)
                      .withValue(ContactsContract.CommonDataKinds.StructuredPostal.REGION, state)
                      .withValue(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE, zipcode)
                      .withValue(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY, country)
                      //.withValue(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK)
                      .build());
4

1 に答える 1

0

これを試してください:

 ContentResolver cr =  getContext().getContentResolver();
             Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                     null, null, null, null);

             if (cur.getCount() > 0) {
                 while (cur.moveToNext()) {
                       String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                       String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                       if (Integer.parseInt(cur.getString(
                             cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                          Cursor pCur = cr.query(
                                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                    null,
                                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
                                    new String[]{id}, null);
                          while (pCur.moveToNext()) {
                              String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

                          }
                         pCur.close();
                     }
                 }
             }

私のために働いた。

于 2013-08-20T10:22:16.773 に答える