嘿家伙我想保存人的详细信息,如其名字姓电话号码 地址用户网站用户组织成电话簿,所以请建议 这个问题的一些解决方案。如何将联系人信息保存到电话簿中?
1
A
回答
5
你可以通过执行这个代码
package com.contacts.in;
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.ContextWrapper;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Data;
import android.widget.Toast;
public class CONTACTSAVEDActivity extends Activity {
String displayName = "XYZ";
String mobileNumber = "123456";
String homeNumber = "1111";
String workNumber = "2222";
String emailID = "[email protected]";
String company = "bad";
String jobTitle = "abcd";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<ContentProviderOperation> ops =
new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(
ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build()
);
//------------------------------------------------------ Names
if(displayName != null)
{
ops.add(ContentProviderOperation.newInsert(
ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
displayName).build()
);
}
//------------------------------------------------------ Mobile Number
if(mobileNumber != null)
{
ops.add(ContentProviderOperation.
newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, mobileNumber)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
.build()
);
}
//------------------------------------------------------ Home Numbers
if(homeNumber != null)
{
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, homeNumber)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
ContactsContract.CommonDataKinds.Phone.TYPE_HOME)
.build());
}
//------------------------------------------------------ Work Numbers
if(workNumber != null)
{
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, workNumber)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
ContactsContract.CommonDataKinds.Phone.TYPE_WORK)
.build());
}
//------------------------------------------------------ Email
if(emailID != null)
{
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Email.DATA, emailID)
.withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK)
.build());
}
//------------------------------------------------------ Organization
if(!company.equals("") && !jobTitle.equals(""))
{
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Organization.COMPANY, company)
.withValue(ContactsContract.CommonDataKinds.Organization.TYPE, ContactsContract.CommonDataKinds.Organization.TYPE_WORK)
.withValue(ContactsContract.CommonDataKinds.Organization.TITLE, jobTitle)
.withValue(ContactsContract.CommonDataKinds.Organization.TYPE, ContactsContract.CommonDataKinds.Organization.TYPE_WORK)
.build());
}
// Asking the Contact provider to create a new contact
try
{
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}
catch (Exception e)
{
e.printStackTrace();
// Toast.makeText(myContext, "Exception: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
此外,在清单
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
+0
感谢ashu给我这个问题的解决方案,它工作正常。 – itechDroid 2012-04-18 07:08:28
+0
我很高兴帮助朋友。 – itechDroid 2012-04-18 07:09:50
+0
是的,它静静地工作。如果重复多次,它会导致重复的联系人,所以我将需要一种方法来检查一个联系人是否已经存在:) – 2014-01-31 02:27:00
相关问题
- 1. 在android中检索电话簿的联系人详细信息
- 2. 将联系人插入Android电话簿
- 3. 使用GTMABAddressBook将联系人详细信息保存到现有联系人
- 4. 如何将联系人添加到C中的电话簿程序?
- 5. 钛:如何在Android电话簿中添加联系人?
- 6. 将iphone电话簿中的所有联系人加载到变量中
- 7. 将联系人姓名和电话存储到ArrayList中
- 8. 如何使用电话簿中的联系人发送短信而不是编写电话号码?
- 9. 在android中获取所有电话簿联系人详细信息到数组中
- 10. 拦截电话来显示联系人信息
- 11. 从电话簿中生成.vcf文件联系人
- 12. 从Android的电话簿中读取联系人
- 13. 教程在Android SDK中创建电话簿联系人
- 14. Android - 更新电话簿中的联系人
- 15. iPhone SDK更新电话簿中的现有联系人
- 16. 如何将联系人从电话簿导入我们的应用程序
- 17. 将联系人列表保存到NSUserDefaults
- 18. Android在拨打电话创建新联系人活动时避免将联系人保存到
- 19. 获取联系人短信数量和联系电话时间
- 20. 如何检查联系人是否已添加到iphone电话簿?
- 21. 如何把我的电话簿联系人上传到MS SQL服务器
- 22. 如何从android中的电话簿中检索联系人号码?
- 23. 打开地址簿和填充详细信息的联系人详细信息并保存它
- 24. 将地址簿联系人存储到nsdictionary中
- 25. iphone地址簿保存链接到一个联系人
- 26. Customer Master - 联系人信息
- 27. 修改联系人信息
- 28. 如何从Android的电话簿和SIM卡中获取所有联系人?
- 29. 我如何查询基于电话号码的联系信息
- 30. 从电话簿获取联系人姓名使用号码 - Android
的可能重复添加允许保存用户信息到电话簿[要添加名称,电子邮件和数量联系人数据库( http://stackoverflow.com/questions/5804617/to-add-name-email-and-number-to-contact-database) – 2012-04-18 07:09:21