AndroidにおいてSMSの送信をしようと思ったらpreinstallされたアプリにIntentを投げるのが一番簡単ではあるが、アプリ内で送信してしまうのもありで、それは結構簡単でした。
こんなかんじ
public class SMSSenderDialog extends Dialog {
public SMSSenderDialog(Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sms_sender_dialog);
this.setTitle("SMS sender");
final EditText phoneNumber = (EditText) findViewById(R.id.phoneNumber);
final EditText message = (EditText) findViewById(R.id.sms_message);
Button btn = (Button)findViewById(R.id.sendSMS);
btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
SmsManager smsManager = SmsManager.getDefault();
String destinationAddress = phoneNumber.getText().toString();
String text = message.getText().toString();
smsManager.sendTextMessage(destinationAddress, null, text, null, null);
dismiss();
}
});
}
}
sendTextMessageを書けばいいのだかららくなもんである
受信に関してはAPIdemosに既に記述があって
./ApiDemos/src/com/example/android/apis/os/SmsMessageReceiver.java
./ApiDemos/src/com/example/android/apis/os/SmsReceivedDialog.java
をパクれば一発であった。
SMSについてはかなり好きなように出来そうで、メッセージの内容も好きに見られるので、そこからUIの処理を走らせて通知とかもふつうに出来そうだった。

