2010-12-14 10 views
3

に追加しています。私はACTION_INSERTアクティビティを開始して連絡先を作成しています。私は次のコードを使用して連絡先のために、いくつかの電話番号(仕事、家庭、など...)を追加したい :アンドロイドは、Android SDK> 5を使用して連絡先の電話番号を

Intent newIntent = new Intent(Intent.ACTION_INSERT, 
      ContactsContract.Contacts.CONTENT_URI); 

for(ContactInfo.Phone p : phones) 
     { 

     newIntent.putExtra(ContactsContract.Intents.Insert.PHONE, p.number); 
     newIntent.putExtra(ContactsContract.Intents.Insert.PHONE_ISPRIMARY, p.isPrimary ? new Integer(1) : null); 
     newIntent.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, unconvertPhoneType(p.type)); 

     } 

(unconvertPhoneTypeは()CommonDataKinds.Phone.TYPE_XXXようなタイプを取得するための機能です)

私は連絡先に1つの例を挿入しています。 上記の問題は何ですか?

また、LogCatログに、私はまた、次のエラーを持っている:それはCommonDataKinds.Phone.TYPE_XXXが整数型であるが、PHONE_TYPEから来ているよう

12-14 11:09:03.015: WARN/Bundle(1724): Key phone_type expected String but value was a java.lang.Integer. The default value was returned.

に見えるので、私はわかりません... その原因は何ですか?

ありがとうございます!

答えて

0

logcatは、整数ではなく文字列値が必要であることを伝えています。それがあなたの問題です。電話番号はString型でなければなりません。

私は公式の文書からこの例を取り上げました。電話番号が ""の文字列として表されていることがわかります。

// Add a phone number for Abraham Lincoln. Begin with the URI for 
// the new record  just returned by insert(); it ends with the _ID 
// of the new record, so we don't have to add the ID ourselves. 
// Then append the designation for the phone table to this URI, 
// and use the resulting URI to insert the phone number. 
phoneUri = Uri.withAppendedPath(uri, People.Phones.CONTENT_DIRECTORY); 
values.clear(); 
values.put(People.Phones.TYPE, People.Phones.TYPE_MOBILE); 
values.put(People.Phones.NUMBER, "1233214567"); 
getContentResolver().insert(phoneUri, values); 

希望します。

+0

ContactInfo.Phone.numberは文字列ですので、問題はありません。インテントを通して連絡先を挿入しています。あなたが提供したコードスニペットが表示されるので、連絡先を直接挿入しないでください。しかし、ありがとう。 –

+0

私は今それを見る。 – Phobos

関連する問題