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

此应用是一个能够调用系统的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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个自己开发的Android 直接发送短信方法附上代码,Android短信功能,包括了对内容合法性的验证,发送完成弹出提示。自己开发的直接发送短信的方法:   private void sendSMS(String telNo,String smsStr,View v){    PendingIntent pi=    PendingIntent.getActivity(this, 0, new Intent(this,Sample_11_1.class), 0);    SmsManager sms=SmsManager.getDefault();    sms.sendTextMessage(telNo, null, smsStr, pi, null);    //短信发送成功给予提示    Toast.makeText(    Sample_11_1.this, //上下文    "恭喜你,短信发送成功!", //提示内容    5000 //信息显示时间    ).show();    v.setEnabled(true);//短信发送完成后恢复发送按钮的可用状态   }   对手机号码和短信内容的验证部分:   //获取输入的电话号码   EditText etTel=(EditText)findViewById(R.id.EditText02);   String telStr=etTel.getText().toString();   //获取输入的短信内容   EditText etSms=(EditText)findViewById(R.id.EditText01);   String smsStr=etSms.getText().toString();   //判断号码字符串是否合法   if(PhoneNumberUtils.isGlobalPhoneNumber(telStr)){//合法则发送短信    v.setEnabled(false);//短信发送完成前将发送按钮设置为不可用    sendSMS(telStr,smsStr,v);   }   else{//不合法则提示    Toast.makeText(    Sample_11_1.this, //上下文    "电话号码不符合格式!!!", //提示内容    5000//信息显示时间    ).show();   }
SMS短信API 名 称:SMS API 版 本:V1.1(built 2004.02.29) 功 能:通过短信网关发送手机短信 作 者:Starboy (starboy@xdevelop.net) Longlybug (sales@xdevelop.net) 网 址:http://www.xdevelop.net 简介   SMS API(for java)是一个通过网关发送手机短信的JAVA开发包,提供了方便的开发应用接口,JAVA开发者可利用它轻松的定制出各类短信应用平台,如:企业OA应用中的短信提醒、网站中的定单短信提醒、交友平台的手机短信互动等等。短信应用开发者无需再去关心网关协议,或者研究与手机间的通信指令等。使用本API,开发者无需关心其它细节,只需调用API,即可实现手机短信应用中最常用的短信发送功能。 功能特点 支持移动和联通手机,自动识别 SMS API实现了短信即时发送和定时发送。支持联通和移动手机,发送时无需关心目标手机运营商,自动识别移动和联通。整体成功率约90%左右。   发送性能优异稳定 API使用的网关服务器拥有多线程发送能力,每秒可同时处理数十个客户端的并发请求。   平台无关性 客户端适用于任何可运行JAVA的平台,包括:Windows、LINUX、UNIX、MAC等。 不像DLL接口,只能运行于WINDOWS平台。 对于WEB应用来说,本API可运行于任何J2EE规范的应用服务器。   接口简洁易用 短信API的接口非常简单,封装了与短信服务器网关的通讯,调用者无需关心底层通讯细节。   无硬件设备要求 只要能上INTERNET网即可使用本API发送短信,无需购买任何手机硬件、短信MODEM、短信卡、数据线等。   费用低廉,接入简单 只需缴纳一定量的接入费并签定短信内容保证书,即可立刻拥有自己的短信平台,每条短信的发送费用为0.1元,可根据需要随时充值。   适合用户 本平台适合那些对短信功能要求比较单一,以及每日发送量不大的各类应用。 安装部署   SMS API开发包由两个文件组成,一个是smsclient.jar:API程序文件,另一个是sms.ini:程序配置文件。   对于JAVA桌面应用程序,需将smsclient.jar加入classpath,并将sms.ini放于classpath所在的一个目录   对于JSP WEB应用程序,可将smsclient.jar放入对应WEB应用的WEB-INF/lib/目录下,并将sms.ini放于WEB-INF/classes/根目录下。   关于API的使用及sms.ini的配置,请参看doc目录下的API使用说明和API文档。   试用版的功能限制   试用版只能发5条短信! 购买联系   欢迎您注册本软件,请与双子星工作室的程先生联系:   EMAIL:sales@xdevelop.net   OICQ:33450   网址:http://www.xdevelop.net   TEL:13510015276   如果您有任何疑问,也请通过以上方式同我们联系,谢谢您的支持!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值