2011-07-21 12 views
1

既存の連絡先に新しい番号(または電子メールやウェブサイト)を追加しようとしていますが、コードがうまく機能しません。Android 2.2の既存の連絡先に新しい番号を追加してください。

int rowId = cursor1.getInt(cursor1 
       .getColumnIndex(ContactsContract.RawContacts._ID)); 
ContentValues contentValues = new ContentValues(); 
contentValues.put(ContactsContract.Data.RAW_CONTACT_ID, rowId); 
contentValues.put(ContactsContract.Data.MIMETYPE, 
     ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); 
contentValues.put(ContactsContract.CommonDataKinds.Phone.NUMBER, 
     "45435345"); 
contentValues.put(ContactsContract.CommonDataKinds.Phone.TYPE, 
     Phone.TYPE_HOME); 

ops.add(ContentProviderOperation 
     .newInsert(ContactsContract.Data.CONTENT_URI) 
     .withValues(contentValues).build()); 

コードが実行すると、エラーが存在しない、と何changes.Iは私を保存しますit.Anyの助けを借りて、落ち込んで午前があり!!!:コードは以下の通りです

+0

あなたは、コードを実行するとどうなりますか? –

+0

何も起こらない:( – KingBright

+0

あなたはContentProviderOperationをする必要があります次の答えを確認するhttp://stackoverflow.com/questions/4744187/how-to-add-new-contacts-in-android –

答えて

0

たぶん、あなたは、これら二つの権限が必要です:

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> 

はおそらく、あなたはContentResolverの代わりContentValuesを使用する必要があります。電話Contatcsの新Contatctを挿入する

+0

私はすでに私の問題を解決したが、ありがとうあなたの答えはとにかくです。私は問題がデータベース内のデータの構造を破壊した私の間違ったコードによって引き起こされたと思います。新しいエミュレータを作成すると、コードはうまく動作します。 – KingBright

0

使用このコード:

Intent intent = new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT, Uri.parse("tel:" + currentNum.getText())); //currentNum is my TextView, you can replace it with the number directly such as Uri.parse("tel:1293827") 
intent.putExtra(ContactsContract.Intents.EXTRA_FORCE_CREATE, true); //skips the dialog box that asks the user to confirm creation of contacts 
startActivity(intent); 

はあなたのコードを楽しむ:) -

関連する問題