关闭

Android--入门---11---(短信发送器---SMS)

278人阅读 评论(0) 收藏 举报

此应用是一个能够调用系统的SmsManager类的两个方法实现的

文件清单:

1.SmsActivity.java

2.AndroidManifest.xml

3.smslayout.xml

4.string.xml

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.SmsActivity.java

--------------------------------------------------------------------------------------

package com.hisoft.activity;

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 SmsActivity extends Activity {

    private Button send;
    private EditText phone;
    private EditText content;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.smslayout);
        initComponent();
    }

    public void initComponent() {

        phone = (EditText) this.findViewById(R.id.edt_num);
        content = (EditText) this.findViewById(R.id.content);
        send = (Button) this.findViewById(R.id.button);
        send.setOnClickListener(new ButtonOnclickListener());

    }

    private final class ButtonOnclickListener implements View.OnClickListener {

        @Override
        public void onClick(View v) {
            String message = content.getText().toString();
            String number = phone.getText().toString();
            SmsManager manager = SmsManager.getDefault();
            ArrayList<String> messages = manager.divideMessage(message);
            /*
             * 由于短信的长度是由国际组织定义的,汉字70个 所以在发送之前必须判断其长度,如果超出定义长度则将短信信息拆分
             */
            for (String msg : messages) {// 采用增强for循环迭代短信,分条发送
                // manager.sendTextMessage(destinationAddress, scAddress, text,
                // sentIntent, deliveryIntent)
                /**
                 * destinationAddress:要发送的电话号码 scAddress :短信中心的地址 text :短信内容
                 * sentIntent:本机接收是否发送成功的状态的Intent ,如不需要此功能则填写null
                 * deliveryIntent :本机接收是否对方接收到短信的状态的Intent,如不需要此功能则填写null
                 */
                manager.sendTextMessage(number, null, msg, null, null);
            }
            /**
             * android 中的通知有三种(参见api 中 developer | Ntification )
             *  A Toast Notification, for brief messages that come from the background.
             *  A Status Bar Notification, for persistent reminders that come from the background and request the user's response.
             *  
             *  A Dialog Notification, for Activity-related notifications.
          * status bar Notification :一般用于服务,广播接收者
          * Dialog Notification:较为重要的信息
          * Toast :用户体验最好
             */
            Toast.makeText(SmsActivity.this, R.string.succes, Toast.LENGTH_SHORT).show();
            //SmsActivity.this  == getApplicationContent
        }

    }

}

2.AndroidManifest.xml

--------------------------------------------------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hisoft.activity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />
        <uses-permission android:name="android.permission.SEND_SMS"/>
        <!--android.permisson.SEND_SMS 这个权限是错误  permisson  不是  permision  哎   一个笔误!,叫我调了好久,所以最好每次书写一些常量时,最好copy   && 权限的注册注册在application的前面-->
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".SmsActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

3.smslayout.xml

--------------------------------------------------------------------------------------

<?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/promit" />
    <EditText
        android:id="@+id/edt_num"<!--对于代码中要用到的控件必须设置ID 以供查找调用-->
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/mobile"/>
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/content"/>

        <EditText
            android:id="@+id/content"
            android:layout_width="fill_parent"
            android:layout_height="350dp"
            android:hint="@string/content" />

        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button"/>    

</LinearLayout>

4.string.xml

--------------------------------------------------------------------------------------


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

    <string name="hello">Hello World, SmsActivity!</string>
    <string name="app_name">短信发送器</string>
    <string name="promit">短信发送至</string>
    <string name="mobile">电话号码</string>
    <string name="content">短信内容</string>
    <string name="button">发送</string>
    <string name="succes">发送成功!</string>

</resources>



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:75125次
    • 积分:1731
    • 等级:
    • 排名:千里之外
    • 原创:99篇
    • 转载:6篇
    • 译文:0篇
    • 评论:7条