1. 程式人生 > >Android開發app實現傳送簡訊功能

Android開發app實現傳送簡訊功能

程式使用手機發簡訊的方法

簡訊收發:

◆傳送簡訊只需要幾行程式碼,如下:

SmsManager sms = SmsManager.getDefault();

PendingIntent pi = PendingIntent.getBroadcast(this, 0, new Intent(), 0);

sms.sendTextMessage(phoneNumber, null, MsgStr, pi, null);

其中引數phoneNumberMsgStr均是String型別,表示接收方的電話號碼和簡訊內容

◆接收簡訊主要是繼承BroadcaseReceiver  ,覆蓋onReceive 函式:

package

 com.android.TinySMS;

import android.app.Activity;

importandroid.app.PendingIntent;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.telephony.gsm.SmsManager;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

publicclass TinySMS extends Activity {

publicstaticfinal String SMS_ACTION = "com.android.TinySMS.RESULT";

//private TextViewmessage;

private Buttonsnd;

private EditTexttel;

private EditTexttxt;

private SentReceiver receiver = new SentReceiver();

private

class SentReceiver extends BroadcastReceiver {

@Override

publicvoid onReceive(Context context, Intent intent) {

if (intent.getAction().equals(SMS_ACTION)) {

int code = getResultCode();

//短訊息傳送成功

if(code == Activity.RESULT_OK)

Toast.makeText(TinySMS.this, R.string.msg_sent,

Toast.LENGTH_SHORT).show();

    }

}

    };

/** Called when the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

tel = (EditText) findViewById(R.id.EditText01);

tel.setText("5554");  //模擬器之間互發簡訊

txt = (EditText) findViewById(R.id.EditText02);

txt.setText("我用自己的程式試試發簡訊。");

snd = (Button) findViewById(R.id.Button01);

snd.setOnClickListener(new View.OnClickListener() {

publicvoid onClick(View arg0) {

String phoneNo = tel.getText().toString();

String message = txt.getText().toString();

if (phoneNo.length()>0 && message.length()>0){

sendSMS(phoneNo, message);

} else {

Toast.makeText(TinySMS.this,

"請重新輸入電話號碼和簡訊內容",

Toast.LENGTH_LONG).show();

}

    }  

});

    }

privatevoid sendSMS(String address, String content)

    {

SmsManager manager = SmsManager.getDefault();

Intent i = new Intent(SMS_ACTION);

//生成PendingIntent,當訊息傳送完成,接收到廣播

PendingIntent sentIntent = PendingIntent.getBroadcast(

this,

0,

i,

PendingIntent.FLAG_ONE_SHOT);

manager.sendTextMessage(

address,

null,

content,

sentIntent,

null);

    }

}

如果要收發簡訊,還需在AndroidManifest.xml中宣告許可權:

<uses-permissionandroid:name="android.permission.READ_SMS"></uses-permission>

<uses-permissionandroid:name="android.permission.SEND_SMS"></uses-permission>