私がやりたいのは、EditText を用意することです。そこに名前を入力できます (これまでに入力した名前に対応する名前のフィルター処理されたリストが表示されます)。最後に連絡先を選択します。EditText には、選択した名前が表示されますが、選択した連絡先に対応する番号にメッセージ (SMS) が送信されます。
ここに私のコードがありますが、これは完全ではありません: もちろん、AndroidManifest ファイルにもいくつかの設定があります。
public class SendSMSActivity extends Activity {
Button buttonSend;
EditText textPhoneNo;
EditText textSMS;
String sms ="";
ListAdapter lAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sendsms);
buttonSend = (Button) findViewById(R.id.buttonSend);
textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo);
textPhoneNo.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
String srchName = textPhoneNo.getText().toString();
Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI,
null,
ContactsContract.Contacts.HAS_PHONE_NUMBER
+ " = 1 AND "
+ ContactsContract.Contacts.DISPLAY_NAME
+ " like " + "'" + srchName + "%'",
null,
"UPPER(" + ContactsContract.Contacts.DISPLAY_NAME
+ ") ASC");
startManagingCursor(cursor);
Load(cursor);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
textSMS = (EditText) findViewById(R.id.editTextSMS);
sms = MainActivityClass.tempSms.toString();
Log.d("SendSMSActivity", " sms text = " + sms);
textSMS.setText(sms);
textSMS.setVisibility(EditText.VISIBLE);
buttonSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String phoneNo = textPhoneNo.getText().toString();
//String sms = textSMS.getText().toString();
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
Toast.makeText(getApplicationContext(), "SMS Sent!",
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
"SMS faild, please try again later!",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
}
}