有一个简单的短信发送器,界面如下:

首先要在/res/values/strings.xml中定义要用到的字符串:

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

    <string name="app_name">短信发送器</string>
    <string name="action_settings">Settings</string>
    <string name="tel_label">接收人</string>
    <string name="content_label">短信内容</string>
    <string name="send_label">发送</string>
    
    <string name="send_successful">发送成功</string>

</resources>

 

其次在res/layout/activity_main.xml中画出如上界面:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tel_label" />
    
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/receiver"
        android:inputType="number" />
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/content_label" />
    
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/content"
        android:inputType="textMultiLine"
        android:minLines="3" />
    
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/send_btn"
        android:text="@string/send_label"/>

</LinearLayout>

 

当界面也画好后,就可以在MainActivity.java中获取号码和内容,并进行内容发送了。

......

public class MainActivity extends Activity {
    private EditText receiverView;
    private EditText contentView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        receiverView = (EditText) findViewById(R.id.receiver);
        contentView = (EditText) findViewById(R.id.content);
        Button sendBtn = (Button) findViewById(R.id.send_btn);
        sendBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String receiver = receiverView.getText().toString();
                String content = contentView.getText().toString();
                //获得短信管理器
                SmsManager smsManager = SmsManager.getDefault();
                //当内容过长时,分段发送
                ArrayList<String> messages = smsManager.divideMessage(content);
                contentView.setText("");
                for(String message : messages) {
                    smsManager.sendTextMessage(receiver, null, message, null , null);
                    Toast.makeText(getApplicationContext(), R.string.send_successful, Toast.LENGTH_LONG).show();
                }
            }
        });
    }

}

 

因为发送短信是要钱的业务,所以肯定要在清单文件中配置发送短信的权限,配置如下:

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

 

然后就可以运行到虚拟机进行测试了。

 

posted on 2014-03-08 22:04  寒岁青松  阅读(117)  评论(0)    收藏  举报