菜鳥学Android開発シリーズその:メール送信電話
Androidでは2つの方法でメールを送信します.
1つ目:
intent-startActivityを使用すると、URIデータ形式は「smsto:num」、呼び出されたactionはIntent.ACTION_SENDTO :
2つ目:
SmsManagerの使用
両者の違いは,前者は送信インタフェースを呼び出しただけで,Sendボタンを押してメールを送信する必要があり,後者は直接送信することである.
SMSの送信権限の設定:
SmsManagerについて
SDKの紹介:Manages SMS operations such as sending data,text,and pdu SMS messages.Get this object by calling the static method SmsManager.getDefault().
方法:
public void sendTextMessage (String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)
destinationAddress:宛先アドレス
scAddress:メールセンター番号nullがデフォルトのセンター番号
sentIntent:メッセージが送信されると、成功または失敗した情報レポートがPendingIntentによってブロードキャストされます.このパラメータが空の場合、送信プログラムはすべての位置プログラムによってチェックされ、送信時間が長くなります.
deliveryIntent:メッセージが受信者に送信されると、PendingIntentがブロードキャストされます.pduデータは、ステータスレポートのextended data(「pdu」)にあります.
受信者または情報が空の場合は、IllegalArgumentExceptionを放出します.
public ArrayList divideMessage (String text)
70文字以上のメールを複数に分割する.
パラメータ:text the original message.Must not be null.
戻り:an ArrayList of strings that,in order,comprise the original message
sendDataMessageパラメータは上と同様で、データを送信するためにのみ使用されます.
sendMultipartTextMessageは複数のメールを送信し、送信内容はdivideMessageで分割しなければならない.
電話のかけ方
電話のかけ方は同様で、URI形式が「tel:num」であるのに対し、呼び出されたactionはIntentである.ACTION_CALL :
電話権限の設定:
拡張学習:
シミュレータにメールで電話する方法
1.android emulatorを起動し、タイトルバーを表示してポートを見つけます.一般的にandroid emulator(5554)であり、そのうち5554がポートである.
2.コマンドラインを開き、telnet localhost 5554と入力します.プログラムはandroid consoleに接続され、戻ります.
Android Console: type 'help' for a list of commands
OK
アナログ電話入力gsm
gsm call<アナログ電話番号>を入力します.次のようになります.
gsm call 18982113450
アナログメール送信sms send
sms send<アナログメールの電話><コンテンツ>を入力します.次のようになります.
sms send 18982113450 hello
このうち、18982113450はシミュレータの携帯電話番号です.
1つ目:
intent-startActivityを使用すると、URIデータ形式は「smsto:num」、呼び出されたactionはIntent.ACTION_SENDTO :
Intent tent = new Intent();
tent.setAction(Intent.ACTION_SENDTO);
tent.setData(Uri.parse("smsto:5554"));
tent.putExtra("sms_body", "android !");
startActivity(tent);
2つ目:
SmsManagerの使用
EditText num=(EditText)findViewById(R.id.num);
EditText content=(EditText)findViewById(R.id.content);
String mobile=num.getText().toString();
String smstext=content.getText().toString();
// SmsManager
SmsManager sms=SmsManager.getDefault();
// 70 ,
List<String> texts=sms.divideMessage(smstext);
//
for(String text:texts)
{
sms.sendTextMessage(mobile, null, text, null, null);
}
//
Toast.makeText(SendSMS.this, " ", Toast.LENGTH_LONG).show();
両者の違いは,前者は送信インタフェースを呼び出しただけで,Sendボタンを押してメールを送信する必要があり,後者は直接送信することである.
SMSの送信権限の設定:
<uses-permissionandroid:name="android.permission.SEND_SMS"/>
SmsManagerについて
SDKの紹介:Manages SMS operations such as sending data,text,and pdu SMS messages.Get this object by calling the static method SmsManager.getDefault().
方法:
public void sendTextMessage (String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)
destinationAddress:宛先アドレス
scAddress:メールセンター番号nullがデフォルトのセンター番号
sentIntent:メッセージが送信されると、成功または失敗した情報レポートがPendingIntentによってブロードキャストされます.このパラメータが空の場合、送信プログラムはすべての位置プログラムによってチェックされ、送信時間が長くなります.
deliveryIntent:メッセージが受信者に送信されると、PendingIntentがブロードキャストされます.pduデータは、ステータスレポートのextended data(「pdu」)にあります.
受信者または情報が空の場合は、IllegalArgumentExceptionを放出します.
public ArrayList
70文字以上のメールを複数に分割する.
パラメータ:text the original message.Must not be null.
戻り:an ArrayList of strings that,in order,comprise the original message
sendDataMessageパラメータは上と同様で、データを送信するためにのみ使用されます.
sendMultipartTextMessageは複数のメールを送信し、送信内容はdivideMessageで分割しなければならない.
電話のかけ方
電話のかけ方は同様で、URI形式が「tel:num」であるのに対し、呼び出されたactionはIntentである.ACTION_CALL :
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:18982113450"));
startActivity(intent);
電話権限の設定:
<uses-permissionandroid:name="android.permission.CALL_PHONE"/>
拡張学習:
シミュレータにメールで電話する方法
1.android emulatorを起動し、タイトルバーを表示してポートを見つけます.一般的にandroid emulator(5554)であり、そのうち5554がポートである.
2.コマンドラインを開き、telnet localhost 5554と入力します.プログラムはandroid consoleに接続され、戻ります.
Android Console: type 'help' for a list of commands
OK
アナログ電話入力gsm
gsm call<アナログ電話番号>を入力します.次のようになります.
gsm call 18982113450
アナログメール送信sms send
sms send<アナログメールの電話><コンテンツ>を入力します.次のようになります.
sms send 18982113450 hello
このうち、18982113450はシミュレータの携帯電話番号です.