短信发送器(1.0版)

这一节学习了短信发送功能的app开发,效果如图:

前台,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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.swust.msg.MainActivity" >

    <!-- 输入为phone类型:0~9和#* -->

    <EditText
        android:id="@+id/et_phone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/tishiPhone"
        android:inputType="phone" />
    <!-- 输入限制为五行,输入框中的内容顶部对齐 -->

    <EditText
        android:id="@+id/et_msg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="top"
        android:hint="@string/tishiMsg"
        android:lines="5" />

    <Button
        android:id="@+id/btnSend"
        android:layout_width="119dp"
        android:layout_height="64dp"
        android:text="发送"
        android:onClick="sendMsg"/>

</LinearLayout>

后台,MainActivity.java代码:

package com.swust.msg;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void sendMsg(View v){

    //获取到用户输入的号码和内容
        EditText et_phone = (EditText)findViewById(R.id.et_phone);
        EditText et_msg = (EditText)findViewById(R.id.et_msg);

        String phone=et_phone.getText().toString();
        String msg=et_msg.getText().toString();
    //发送短信
        //1.获取短息管理器
        SmsManager sm = SmsManager.getDefault();
        //2.发送短信
        /*第二个形参为短息服务中心,为空即可
         *第三个形参为发送广播,为空即可
         *第4个形参为接受广播,为空即可*/
        //sm.sendTextMessage(phone, null, msg, null, null);
        //2.切割短信,把长短信分成若干个小短信
        ArrayList<String> smss= sm.divideMessage(msg);

        //3.for循环把集合中所有短信全部发出去
        for(String string:smss){
            sm.sendTextMessage(phone, null, string, null, null);
        }
    }
}

当然需要加权限,在清单文件Permission中有如下权限:

  <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.SEND_SMS"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            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>

第二版:

关于发送短信的核心语句解释参照这里:

http://www.cnblogs.com/nktblog/articles/2607086.html

package com.swust.msg;

import java.util.ArrayList;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void sendMsg(View v){

    //获取到用户输入的号码和内容
        EditText et_phone = (EditText)findViewById(R.id.et_phone);
        EditText et_msg = (EditText)findViewById(R.id.et_msg);

        String phone=et_phone.getText().toString();
        String msg=et_msg.getText().toString();
    //发送短信
        //1.获取短息管理器
        SmsManager sm = SmsManager.getDefault();
        //2.发送短信
        /*第二个形参为短息服务中心,为空即可
         *第三个形参为发送广播,为空即可
         *第4个形参为接受广播,为空即可*/
        //sm.sendTextMessage(phone, null, msg, null, null);
        //2.切割短信,把长短信分成若干个小短信
        ArrayList<String> smss= sm.divideMessage(msg);

        //3.for循环把集合中所有短信全部发出去
        for(String string:smss){
            sm.sendTextMessage(phone, null, string, null, null);
        }
        /*首先判读电话长度为11或者6(测试我们学校)并且内容不为空,将信息发送出去;发送成功或失败后返回提示
        缺点是,没有使用切割短信循环发功能,直接将信息(msg)发送了*/
        if( (phone.trim().length()==11||phone.trim().length()==6) &&msg.trim().length()!=0){
                        PendingIntent pintent=PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(), 0);
                        sm.sendTextMessage(phone, null, msg, pintent, null);
                        Toast.makeText(MainActivity.this, "发送成功", Toast.LENGTH_SHORT).show();
                        }else{
                        Toast.makeText(MainActivity.this, "发送失败", Toast.LENGTH_SHORT).show();
                            }
    }
}
时间: 2025-01-11 22:46:47

短信发送器(1.0版)的相关文章

Android开发系列(二):短信发送器的实现

我们要实现的目标是:做一个短信发送器 界面: 因为要涉及到短信发送这种属于隐私的问题,所以我们要在AndroidManifest.xml中添加一行代码,来获得权限: <uses-permission android:name="android.permission.SEND_SMS"/> 然后,我们就要配置main.xml: <?xml version="1.0" encoding="utf-8"?> <Linear

赵雅智_Android短信发送器

注意要点: 1)必须要在AndroidManifest.xml中添加发送短信权限<uses-permission android:name="android.permission.SEND_SMS" /> 设置视图:setContentView(R.layout.布局xml文件); 2)查找控件:findViewById(R.id.控件id); 3)监听按钮事件:控件.setOnClickListener(this),实现OnClickListener接口 4)获取edit

无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM 的比较 3.常见adb指令 platform-tools/adb.exe adb.exe : android debug bridge android调试桥 adb devices:列出所以连接的设备 adb kill-server :杀死adb调试桥 adb start-server :启动adb

Android实现电话拨号器和短信发送器

电话拨号器和短信发送器是Android初学者很好的练习项目,今天就找了两个写得很不错的例子学习下 电话拨号器 实现原理:用户输入电话号码,当点击拨打的时候,由监听对象捕获,监听对象通过文本控件获取到用户输入的电话号码,由于系统已经实现了电话拨号功能,所以我们只需要调用这个功能就可以了. 步骤: 1.界面布局 2.编写Activity 3.使用意图过滤器激活电话拨号功能 4.添加电话服务权限(用手机的电话服务,要在清单文件AndroidManifest.xml中添加电话服务权限) 如图所示这三个控

Android短信发送器

Xml代码: <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:id="@+id/widget0" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.an

二、短信发送器

模拟android短信发送器的实现 AndroidManifest.xml清单文件 <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ljq.sms" android:versionCode="1" a

Android_简易的短信发送器

这个随笔将介绍如何完成一个简单的第三方的短信发送器(不打开短信界面,调用android的api完成功能) 1.首先,我们来做布局 由于我这里写的是一个简易的,,短信发送,所以只是一个LinearLayout下放了两个EditText用来存号码和内容,还有一个Button发送按钮,如果想要更华丽的布局,有兴趣的大家可以再去添加奥. 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xml

简易短信发送器

这个随笔将介绍如何完成一个简单的第三方的短信发送器(不打开短信界面,调用android的api完成功能) 1.首先,我们来做布局 由于我这里写的是一个简易的,,短信发送,所以只是一个LinearLayout下放了两个EditText用来存号码和内容,还有一个Button发送按钮,如果想要更华丽的布局,有兴趣的大家可以再去添加奥. 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xml

andriod短信发送器

1 看了黑马视频,根据电话拨号器和一个仿照QQ的恶意程序的讲解视频,自己动手做了短信发送器的练习,弄了一天终于完成,挺高兴的,纪念一下, 学了几年计算机,真心认真写几行代码,真的太少了. 上图为证: 2  其中遇到不少问题 1 编辑器在创建新的andriod项目的时候,会自带一个Fragmet_main.xml,后来搜了资料说是新版的开发环境新建andriod项目都这样,解决不了问题, 我就找了个旧的编辑器,详细见上篇博客. 2 忘记设置发送短信权限 3 指针错误 -----  java.lan

初识安卓小程序(Android短信发送器)

首先,先创建一个安卓项目(我的版本是4.4.2的),名字为"短信发送器" 然后在res文件夹下找到layout文件夹,找到activity_main.xml或fragment_main.xml,在里面输入或拖拽按钮 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tool