我在做一个项目时,遇到了一个需求,我做的是中国移动的一卡多号项目。就是在一卡多号中的某个副号下面我新建了一个联系人这个联系人不保存到系统中。那么我点击某个联系人客户希望将此联系人添加到系统手机通讯录中并且希望可以编辑此联系人的信息。那么我就想办法将此联系人的信息传递给系统自带的新建联系人界面中去。我查看了ContactsContract的源码,基本信息都是可以带进去了。但是有些信息不可以带进去至今还不知道是为什么。以下是我总结记录的:
package com.alnton.EditContactsDemo;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
/**
* <新建联系人别且将联系人的信息传递过去>
* @author 王乾州
*/
public class EditContactsDemoActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Uri insertUri = android.provider.ContactsContract.Contacts.CONTENT_URI;
Intent intent = new Intent(Intent.ACTION_INSERT, insertUri);
/**
* 联系人姓名
*/
intent.putExtra(android.provider.ContactsContract.Intents.Insert.NAME, “王乾州”);
/**
* 号码类型
*/
intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE, “12345678″);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE_TYPE, 9);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.SECONDARY_PHONE, “123″);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE, 15);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.TERTIARY_PHONE, “888″);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.TERTIARY_PHONE_TYPE, 17);
/**
* 邮箱类型
*/
intent.putExtra(android.provider.ContactsContract.Intents.Insert.EMAIL, “home@yahoo.com”);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.EMAIL_TYPE, 1);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.SECONDARY_EMAIL, “work@yahoo.com”);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.SECONDARY_EMAIL_TYPE, 2);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.TERTIARY_EMAIL, “mobile@yahoo.com”);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.TERTIARY_EMAIL_TYPE, 4);
/**
* IM类型
*/
intent.putExtra(android.provider.ContactsContract.Intents.Insert.IM_HANDLE, “2434677097″);
intent.putExtra(android.provider.ContactsContract.Intents.Insert.IM_PROTOCOL, 4);
/**
* 备注
*/
intent.putExtra(android.provider.ContactsContract.Intents.Insert.NOTES, “备注”);
/**
* 职务
*/
intent.putExtra(android.provider.ContactsContract.Intents.Insert.JOB_TITLE, “软件工程师”);
/**
* 公司
*/
intent.putExtra(android.provider.ContactsContract.Intents.Insert.COMPANY, “中软国际”);
/**
* 网站
*/
// intent.putExtra(android.provider.ContactsContract.CommonDataKinds.Website.URL, “http://www.alnton.com”);
/**
* 昵称
*/
// intent.putExtra(android.provider.ContactsContract.CommonDataKinds.Nickname.NAME, “alnton”);
/**
* 头像
* 参数为BLOB类型
*/
// intent.putExtra(android.provider.ContactsContract.CommonDataKinds.Photo.PHOTO, );
/* PS:网站、昵称、头像不能传递过去不知道为什么,可能那个界面只接收android.provider.ContactsContract.Intents.Insert里面的参数吧 */
startActivity(intent);
}
}
以下是我根据源码里总结的电话、邮箱、IM等的类型:
package com.alnton.EditContactsDemo;
/**
* <手机,邮箱,IM等的类型>
* @author 王乾州
*/
public class interfaceDemo
{
/**
* 手机类型
*/
public static final class Phone
{
/* 住宅 */
public static final int TYPE_HOME = 1;
/* 手机 */
public static final int TYPE_MOBILE = 2;
/* 单位 */
public static final int TYPE_WORK = 3;
/* 单位传真 */
public static final int TYPE_FAX_WORK = 4;
/* 住宅传真 */
public static final int TYPE_FAX_HOME = 5;
/* 寻呼机 */
public static final int TYPE_PAGER = 6;
/* 其他 */
public static final int TYPE_OTHER = 7;
/* 回拨电话 */
public static final int TYPE_CALLBACK = 8;
/* 车载电话 */
public static final int TYPE_CAR = 9;
/* 公司总机 */
public static final int TYPE_COMPANY_MAIN = 10;
/* ISDN */
public static final int TYPE_ISDN = 11;
/* 总机 */
public static final int TYPE_MAIN = 12;
/* 其他传真 */
public static final int TYPE_OTHER_FAX = 13;
/* 无线装置 */
public static final int TYPE_RADIO = 14;
/* 电报 */
public static final int TYPE_TELEX = 15;
/* TTY TDD */
public static final int TYPE_TTY_TDD = 16;
/* 单位手机 */
public static final int TYPE_WORK_MOBILE = 17;
/* 单位寻呼机 */
public static final int TYPE_WORK_PAGER = 18;
/* 助理 */
public static final int TYPE_ASSISTANT = 19;
/* 彩信 */
public static final int TYPE_MMS = 20;
}
/**
* 邮箱类型
*/
public static final class Email
{
/* 家用个人邮箱 */
public static final int TYPE_HOME = 1;
/* 单位邮箱 */
public static final int TYPE_WORK = 2;
/* 其他邮箱 */
public static final int TYPE_OTHER = 3;
/* 手机邮箱 */
public static final int TYPE_MOBILE = 4;
}
/**
* IM类型
*/
public static final class IM
{
/**
* 来宾IM
*/
public static final int PROTOCOL_CUSTOM = -1;
/**
* AIM
*/
public static final int PROTOCOL_AIM = 0;
/**
* MSN
*/
public static final int PROTOCOL_MSN = 1;
/**
* 雅虎
*/
public static final int PROTOCOL_YAHOO = 2;
/**
* Skype
*/
public static final int PROTOCOL_SKYPE = 3;
/**
*/
public static final int PROTOCOL_QQ = 4;
/**
* Google Talk
*/
public static final int PROTOCOL_GOOGLE_TALK = 5;
/**
* ICQ
*/
public static final int PROTOCOL_ICQ = 6;
/**
* Jabber
*/
public static final int PROTOCOL_JABBER = 7;
/**
* 自定义
*/
public static final int PROTOCOL_NETMEETING = 8;
}
}