android发送短信

模拟android短信发送器的实现

AndroidManifest.xml清单文件

<?xml version="1.0" encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.ljq.sms"

android:versionCode="1"

android:versionname="1.0">

<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">

<activityandroid:name=".MainActivity"

android:label="@string/app_name">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

          </activity>

    </application>

<uses-sdkandroid:minSdkVersion="7"/>

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

  </manifest>

main.xml布局文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<RelativeLayoutandroid:layout_width="fill_parent"

android:layout_height="wrap_content">

<TextViewandroid:layout_width="115dip"

android:layout_height="wrap_content"

android:text="请输入手机号"

android:id="@+id/mobilelabel"/>

<EditTextandroid:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_toRightOf="@id/mobilelabel"

android:text="5556"

android:id="@+id/mobile"/>

</RelativeLayout>

<TextViewandroid:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="请输入短信内容"/>

<EditTextandroid:layout_width="fill_parent"

android:layout_height="wrap_content"

android:minLines="3"

android:text="Iamateacher!"

android:id="@+id/content"/>

<Buttonandroid:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="发送"

android:id="@+id/button"/>

  </LinearLayout>

MainActivity

package com.ljq.sms;

import java.util.ArrayList;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.telephony.SmsManager;

importandroid.view.View;

importandroid.widget.Button;

importandroid.widget.EditText;

  import android.widget.Toast;

public class MainActivity extends Activity {

privateEditTextmobileText=null;

      private EditText contentText=null;

    @Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mobileText=(EditText)findViewById(R.id.mobile);

contentText=(EditText)findViewById(R.id.content);

Buttonbutton=(Button)findViewById(R.id.button);

button.setOnClickListener(newView.OnClickListener(){

publicvoidonClick(Viewv){

Stringmobile=mobileText.getText().toString();

Stringcontent=contentText.getText().toString();

//取得android系统中默认的短信管理器

SmsManagermanager=SmsManager.getDefault();

//如果短信内容过长时,则对短信内容进行拆分

ArrayList<String>texts=manager.divideMessage(content);

for(Stringtext:texts){

//第一个参数:对方手机号码

//第二个参数:短信中心号码,一般设置为空

//第三个参数:短信内容

//第四个参数:sentIntent判断短信是否发送成功,如果你没有SIM卡,或者网络中断,则可以通过这个intent来判断。

//注意强调的是“发送”的动作是否成功。那么至于对于对方是否收到,另当别论

//第五个参数:当短信发送到收件人时,会收到这个deliveryIntent。即强调了“发送”后的结果

//就是说是在"短信发送成功"和"对方收到此短信"才会激活sentIntent和deliveryIntent这两个Intent。这也相当于是延迟执行了Intent

manager.sendTextMessage(mobile,null,text,null,null);

}

//Toast.makeText(getApplicationContext(),"发送成功",Toast.LENGTH_LONG).show();

Toast.makeText(MainActivity.this,"发送成功",Toast.LENGTH_LONG).show();

}

});

}

  }

 

 

调用系统自带短信发送:

    public void SendSMS(){

    Uri smsToUri = Uri.parse("smsto:123456");

       Intent sendIntent = new Intent(Intent.ACTION_VIEW, smsToUri);

       String str =  getString(R.string.smsString);

       sendIntent.putExtra("sms_body",str);

       sendIntent.setType("vnd.android-dir/mms-sms");

       startActivity(sendIntent);

//     finish();

    }

相关推荐