(二)发送短信
一、直接进入正题,效果图:
二、代码部分
1、strings.xml定义变量
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">短息发送器</string> <string name="number">请输入手机号</string> <string name="content">请输入短信内容</string> <string name="button">发送</string> <string name="success">发送成功</string> </resources>
2、画面布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/number" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/number" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:minLines="3" android:id="@+id/content" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" android:id="@+id/button" /> </LinearLayout>
3、后台代码
package ysc.itast; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { /** Called when the activity is first created. */ private EditText numberText;//定义EditText获取电话号码 private EditText contentText;//定义EditText获取短信内容 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); numberText=(EditText)this.findViewById(R.id.number); contentText=(EditText)this.findViewById(R.id.content); Button button=(Button)this.findViewById(R.id.button); button.setOnClickListener(new ButtonClickListener());//调用事件 } private final class ButtonClickListener implements View.OnClickListener{ public void onClick(View v){ String number=numberText.getText().toString();//获取电话号码 String content=contentText.getText().toString();//获取内容 //发送短信对象 SmsManager manager=SmsManager.getDefault(); ArrayList<String> texts=manager.divideMessage(content);//短信内容过长,分多个短信发送 for(String text:texts) { manager.sendTextMessage(number, null, text, null, null); //发送 } Toast.makeText(MainActivity.this, R.string.success, Toast.LENGTH_LONG).show();//提示短信已发送 } } }
4、权限配置
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ysc.itast" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".MainActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> //发送短信配置 <uses-permission android:name="android.permission.SEND_SMS"/> </manifest>
代码部分已结束。
注意:在虚拟机上测试,发送中文短信,会出现乱码现象,属于正常现象。在真机上就正常;