您的位置:首页 > 移动开发 > Android开发

android获取单个通讯录联系人信息并分享内容(短信邀请)

2015-10-13 22:25 543 查看
在应用开发中,我们经常会遇到短信邀请功能,把邀请内容通过短信的方式发给在通讯录中选择的联系人。

这里我们是直接跳转到系统默认的通讯录,所以我们用Intent的startActivityForResult跳转。

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 1);


在onActivityResult里面我们获取联系人的信息:

@Override
protected void onActivityResult(int requestCode, int                resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case (1): {
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
c.moveToFirst();
String phoneNum = this.getContactPhone(c);
sendSmsWithBody(MainActivity.this,phoneNum,"我正在使用免费**应用,每月登录送话费");
}
break;
}
}
}


获取手机号码的getContactPhone(Cursor cursor)方法

//获取联系人电话
private String getContactPhone(Cursor cursor)
{
int phoneColumn = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
int phoneNum = cursor.getInt(phoneColumn);
String phoneResult="";
//System.out.print(phoneNum);
if (phoneNum > 0)
{
// 获得联系人的ID号
int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
String contactId = cursor.getString(idColumn);
// 获得联系人的电话号码的cursor;
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId,
null, null);
if (phones.moveToFirst())
{
// 遍历所有的电话号码
for (;!phones.isAfterLast();phones.moveToNext())
{
int index = phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
int typeindex = phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE);
int phone_type = phones.getInt(typeindex);
String phoneNumber = phones.getString(index);
switch(phone_type)
{
case 2:
phoneResult=phoneNumber;
break;
}
}
if (!phones.isClosed())
{
phones.close();
}
}
}
return phoneResult;
}


获取手机号码后,我们就直接跳转到发送短信界面了。

/**
* 调用系统界面,给指定的号码发送短信,并附带短信内容
*
* @param context
* @param number
* @param body
*/
public void sendSmsWithBody(Context context, String number, String body) {
Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
sendIntent.setData(Uri.parse("smsto:" + number));
sendIntent.putExtra("sms_body", body);
context.startActivity(sendIntent);
}


这样,我们就实现了短信邀请功能了。

其实还是比较简单的,这里是 源码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: