heikyoのblog

[Android] 電話帳アプリを呼び出し、選択したアドレスをメーラを起動したときにセットする

Aボタンを押すと、電話帳アプリを呼び出し、TextViewにアドレスをセットして、
Bボタンを押すと、メーラーを起動して、選択したアドレスを宛先にセットします。
※注意:  Android1.xだと「ContactsContract」が使えないみたいなんで、Android2.x以上で使ってください。

device-2011-07-24-011901device-2011-07-24-012031

Sample.java

public class Samole extends Activity implements OnClickListener {


private static final int PICK_CONTACT = 0;

private Button selectButton;
private Button sendButton;

private TextView addressText;

private String id;

private String uri;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.personal);
 

selectButton = (Button)findViewById(R.id.selectbtn);

sendButton = (Button)findViewById(R.id.sendbtn);

addressText = (TextView)findViewById(R.id.textview);

selectButton.setOnClickListener(this);

sendButton.setOnClickListener(this);
}


@Override

public void onClick(View v) {

switch(v.getId()) {

case R.id.selectbtn:

Intent pickIntent = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(pickIntent, PICK_CONTACT);

break;

case R.id.sendbtn:

Intent sendIntent = new Intent();

sendIntent.setAction(Intent.ACTION_SENDTO);

sendIntent.setData(Uri.parse("mailto:" + uri));

sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Test"); // 件名

sendIntent.putExtra(Intent.EXTRA_TEXT, "Test");  // 本文

startActivity(sendIntent);

break;

}

}

@Override

public void onActivityResult(int reqCode, int resultCode, Intent data) {

super.onActivityResult(reqCode, resultCode, data);

switch(reqCode) {

case(PICK_CONTACT):

if(resultCode == Activity.RESULT_OK) {

Uri contactData = data.getData();

Cursor c = managedQuery(contactData, null, null, null, null);

while(c.moveToNext()) {

id = c.getString(c.getColumnIndex(c.getColumnName(11)));

}

}

Cursor emails = managedQuery(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + id,
null,
null);

while(emails.moveToNext()) {

uri = emails.getString(emails.getColumnIndex(
ContactsContract.CommonDataKinds.Email.DATA));

}

addressText.setText("address: " + uri);

}
}

}

livedoor プロフィール
記事検索
カテゴリ別アーカイブ
  • ライブドアブログ
heikyoのblog