2011-12-20 6 views
3

연락처를 전화 번호부에 추가하려고합니다.
나는 성공적이었습니다. 나는 새 연락처를 추가하고 그것에 모바일 번호를 할당했습니다.연락처에 사진 추가

이제 리소스 디렉토리에있는 JPG를 연락처 사진으로 추가해야합니다.
자습서를 찾고 있는데 찾을 수 없습니다.

이전 전화를 대상으로해야하므로 이전 주소록 API를 사용해야합니다.

아무도 도와 줄 수 있습니까?

ContentValues contact = new ContentValues(); 

contact.put(People.NAME, "testContact"); 
Uri insertUri = activity.getContentResolver().insert(People.CONTENT_URI, contact); 

Uri phoneUri = Uri.withAppendedPath(insertUri, People.Phones.CONTENT_DIRECTORY); 
contact.clear(); 
contact.put(People.Phones.TYPE, People.TYPE_MOBILE); 
contact.put(People.NUMBER, "12128911"); 


updateUri = activity.getContentResolver().insert(phoneUri, contact); 

답변

2

나는, 당신은 또한 (.. 당신이 원하는 매니페스트 파일 사용의 minSdkVersion 지원을위한 낮은 버전),

을 이것을 사용할 수 있습니다 그리고 내가 무엇을하고 있는가하면 (같은 것입니다 8 개 이상의 새로운 API를 사용하여 나는

ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
bm.compress(Bitmap.CompressFormat.PNG , 75, stream); 

operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
      .withValue(ContactsContract.Data.RAW_CONTACT_ID, 9) // here 9 is _ID where I'm inserting image 
      .withValue(ContactsContract.Data.IS_SUPER_PRIMARY, 1) 
      .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE) 
      .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO,stream.toByteArray()) 
      .build()); 

    try { 
     stream.flush(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+0

이것은 이전 전화 (<2.1) –

+0

에 사용할 수없는 ContactsContract 클래스를 사용하고 있습니다. 예, 이미 언급했듯이, 8+에서 언급했기 때문에 이것을 사용하고 명시된 minsdkversion을 넣어주세요. – user370305

+0

죄송합니다. Android가 처음인데 Android 1.6, 2.1 등을 실행하는 휴대 전화에서 작동하겠습니까? 나는이 라이브러리가 이후 버전에 도입되지 않았다고 생각했다. –

0
final Uri uri = ContactsContract.Contacts.CONTENT_URI; 
    final String[] projection = new String[] { 
      ContactsContract.Contacts._ID, 
      ContactsContract.Contacts.DISPLAY_NAME, 
      ContactsContract.Contacts.PHOTO_URI 
    }; 
    //boolean mShowInvisible = false; 
    String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'"; 
    String[] selectionArgs = null; 
    final String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; 

    m_curContacts = managedQuery(uri, projection, selection, selectionArgs, sortOrder); 
    String[] fields = new String[] {ContactsContract.Data.DISPLAY_NAME, ContactsContract.Contacts.PHOTO_URI}; 
    myadapter= new MySimpleCursorAdapter(this, R.layout.list_search, m_curContacts, fields, new int []{R.id.textView1,R.id.imageView1}); 

이 코드는 당신을 위해 도움이 될 수 있습니다 보시기 바랍니다 .PNG 형식 비트 맵)를 사용하고 있습니다.

관련 문제