Androidは、単一の連絡先情報を取得し、コンテンツを共有する(メール招待)
アプリケーション開発では、メール招待機能に遭遇し、招待内容をメールで通信録で選択した連絡先に送ることがよくあります.
ここではシステムのデフォルトの通信録に直接ジャンプするので、IntentのstartActivity ForResultでジャンプします.
onActivity Resultで連絡先の情報を取得します.
携帯電話番号を取得するgetContactPhone(Cursor cursor)メソッド
携帯電話の番号を取得すると、私たちは直接メールのインタフェースにジャンプしました.
これにより、メール招待機能が実現しました.
実は比較的に簡単で、ここはソースコードです
ここではシステムのデフォルトの通信録に直接ジャンプするので、IntentのstartActivity ForResultでジャンプします.
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 1);
onActivity Resultで連絡先の情報を取得します.
@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);
}
これにより、メール招待機能が実現しました.
実は比較的に簡単で、ここはソースコードです