2011-12-20 11 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形式のビットマップを使用しています。

関連する問題