(二)发送短信

一、直接进入正题,效果图:

二、代码部分

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>

代码部分已结束。

 

注意:在虚拟机上测试,发送中文短信,会出现乱码现象,属于正常现象。在真机上就正常;

 

posted @ 2015-08-31 11:06  岳帅超  阅读(212)  评论(0编辑  收藏  举报