ウェブアプリケーション,インジェクション,コマンドインジェクション

Androidアプリ開発 メッセージの取り扱い

組込みメッセージアプリでSMSメッセージを送る

Sending SMS Messages Through the Biilt-In Messaging Application

ここではすべてのAndroidデバイスにインストールされている
組込み済みのメッセージアプリケーションを使って
SMSメッセージを送る方法を示します。
この方法を使って”sendとforget(送信と破棄)”ができるようになります。
必要になるのは、Intentオブジェクトを使って
メッセージアプリケーションを実行することと、
必要な情報部分をIntentオブジェクトに渡すことです。
渡される情報は受信者の電話番号やメッセージになるでしょう。
ユーザにはデバイスにあるメッセージアプリケーションの
インターフェースと同じように見え、電話番号、メッセージなどの
入力に対しユーザインターフェースと分離して作る必要があります。
SMSメッセージを送るためにAndroidデバイスの
組み込まれているメッセージアプリケーションを実行するためには、
StartActivity()メソッドと共にIntentオブジェクトを
使う必要があります。
以下のコードは組込みメッセージアプリケーションを
どのように実行するかを示します。

package net.learn2develop.messagingapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends Activity{
  @Override
  publi void onCrate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   Intent i = new Intent(android.content.Intent.ACTION_VIEW);
   i.putExtra("address", "5556; 5558; 5560");
   i.putExtra("sms_body", "Greetings");
   i.setType("vnd.android-dir/mms-sms");
   startActivity(i);
  }
}

注目する点は以下のように
●android.content.Intent.Acrion_viewというアクション型を使います。
●IntentオブジェクトのMIME型をvnd.android-dir/mms-smsに
セットする必要があります。
●addressキーを使って受信者の電話番号を指定します。
もし複数の受信者を指定する場合には、”;”で番号を区切ります。
上のコードの例では、3つの受信者、5556、5558と5560を指定してます。
●sms-keyを使ってメッセージ本体を指定します。


ちょっと注釈

コード例に使われている電話番号は、Androidエミュレータ(AVD)で
テストするためのものです。
それぞれのAVDにはポート番号があり、最初に5554で始まり、
二番目は5556など
(これらの番号は連続していません。この場合2つ番号が増えてます。)
これらのポート番号もAVDの電話番号として使えます。
そのため、これらポート番号を使ってAVDにSMSメッセージを
送ることができます。


コード例ではセミコロン”;”文字を使って電話番号を分離しています。
i.putExtra("address", "5554; 5556; 5560");
しかし、セミコロンはいくつかの種類のデバイスでは動かないでしょう。
動かないデバイスのために、コンマ”,”に置き換えると動き出します。
ここでの重要な点は、動くかどうかを実際のデバイスで
確認することになります。
以下のコードは開発するアプリケーションが走るデバイスが
コンマ、セミコロンのどちらの分離文字に対応しているかを
プログラム的に調べるものです。

String manufacturer = android.os.Buill.MANUFACTUTER;
//---level 4---
String model = android.os.Build.MODEL;
Toast.makeText(this, manufacturer + "," + model, Toast.LENGTH_LONG).show();

全世界的に開発するアプリケーションが動く様にするためには、
プラス文字”+”と国コードを電話番号の前に置くべきもすべきでしょう。



ホーム
便利堂ロゴ
inserted by FC2 system