菜鳥学Android開発シリーズその:メール送信電話

3482 ワード

Androidでは2つの方法でメールを送信します.
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 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 :
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はシミュレータの携帯電話番号です.