0

(コード セグメントの改訂 - 現在動作中)

Android リファレンス http://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert.html によると、メールと電話番号の配列を連絡先エディターに渡すことができるはずです。これで成功した人はいますか?

多くの調査と実験の後、何も機能していないようです。名前フィールドのみが入力された状態でエディターを開くことから明らかなように、パラメーターを無視するだけです。これは、Android 4.2.1 を実行している Nexus 7 上にあります。連絡先アプリのバージョンは 4.2.1-533553 です。

これが私のコードです(「フォーム」は宣言され、他の場所で埋められます):

Intent intent = new Intent();
intent.setAction (Intent.ACTION_INSERT);
intent.setData (ContactsContract.Contacts.CONTENT_URI);
intent.putExtra (ContactsContract.Intents.Insert.NAME, form.name);

ArrayList<ContentValues> parcels = new ArrayList<ContentValues>();

for (int i = 0;  i < form.phones.length;  i++)
{
  ContentValues row = new ContentValues();
  row.put (Data.MIMETYPE, CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
  row.put (CommonDataKinds.Phone.NUMBER, form.phones[i]);
  row.put (CommonDataKinds.Phone.TYPE, form.phoneIds[i]);
  parcels.add (row);
}

for (int i = 0;  i < form.emails.length;  i++)
{
  ContentValues row = new ContentValues();
  row.put (Data.MIMETYPE, CommonDataKinds.Email.CONTENT_ITEM_TYPE);
  row.put (CommonDataKinds.Email.ADDRESS, form.emails[i]);
  row.put (CommonDataKinds.Email.TYPE, form.emailIds[i]);
  parcels.add (row);
}

intent.putParcelableArrayListExtra (ContactsContract.Intents.Insert.DATA, parcels);
startActivityForResult (intent, ACTIVITY_REQUEST_FULL_EDIT);
4

1 に答える 1

1

行を埋めるたびに、phones.add(row) と email.add(row) を追加しようとしましたか?

于 2013-02-25T17:05:12.950 に答える