02_android入门_实现短信/彩信发送的功能

来源:互联网 发布:大数据公司的经营范围 编辑:程序博客网 时间:2024/05/16 09:38

一、短息发送实现要点:

1)必须要在AndroidManifest.xml中添加发送短信权限<uses-permission android:name="android.permission.SEND_SMS" />

2)查找控件:findViewById(R.id.控件id);

3)监听按钮事件:控件.setOnClickListener(this),实现OnClickListener接口

4)获取editText里的值:getText();


二、发送短信思路:

1) 获取短信号码及内容

2) 判断短信号码及内容是否为空

3) 获取短息的管理器对象

3) 如果你的字符数大于了70自动拆分处理

4) 发送短信的处理


三、实现效果

 




                


以上 有短信和彩信的效果图

下面具体看一下短信实现的代码:

1.布局文件中所需要的字符串资源string.xml

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">lesson02</string>    <string name="hello_world">Hello world!</string>    <string name="action_settings">Settings</string>    <string name="sms_tip_phone">请输入您要发送的手机号码</string>    <string name="sms_tip_content">请输入您要发送的信息内容</string>    <string name="tip_sms">输入短息的信息</string>    <string name="send_sms">发送短信</string>    <string name="error_sms_content">您发送的短信号码或者短信内容不能为空</string></resources>

2.布局文件 activity_sms.xml

<RelativeLayout    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"    tools:context="${packageName}.${activityClass}">    <!-- 提示输入电话号码信息 -->    <TextView         android:id="@+id/tv_tip_phone"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/sms_tip_phone"/>        <!-- 输入手机号码的信息 -->    <EditText        android:id="@+id/et_phone"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/tv_tip_phone"        android:layout_alignParentLeft="true"        android:inputType="phone"/>        <!-- 提示输入短信信息 -->    <TextView         android:id="@+id/tv_tip_sms_content"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/sms_tip_content"        android:layout_below="@+id/et_phone"/>        <!-- 输入短息的信息 -->    <EditText        android:id="@+id/et_sms_content"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/tv_tip_sms_content"        android:lines="5"        android:hint="@string/tip_sms"/>       <!-- 发送信息的按钮 -->    <Button         android:id="@+id/send_btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/et_sms_content"        android:text="@string/send_sms"/></RelativeLayout>

3.SmsActivity代码

package com.example.lesson02_sms;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.telephony.SmsManager;import android.text.TextUtils;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class SmsActivity extends Activity implements OnClickListener{ //声明控件private EditText et_phone;private EditText et_content;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);//设置显示的视图setContentView(R.layout.activity_sms);//获取控件对象et_phone = (EditText) findViewById(R.id.et_phone);et_content = (EditText) findViewById(R.id.et_sms_content);//获取按钮的控件对象Button send_btn = (Button) findViewById(R.id.send_btn);//注册监听事件send_btn.setOnClickListener(this);}/** * 按钮点击事件处理的方法 */@Overridepublic void onClick(View v) {//获取控件的id值 int id =  v.getId(); //根据id判断点击的控件 switch (id) {case R.id.send_btn://获取短信号码 String phone =  et_phone.getText().toString(); //获取短信的内容 String content = et_content.getText().toString(); //判断短信号码和内容是否为空 if(TextUtils.isEmpty(phone)||TextUtils.isEmpty(content)){ //吐司效果 Toast.makeText(this,R.string.error_sms_content, Toast.LENGTH_SHORT).show(); }else{ //获取短息的管理器对象 SmsManager smsManager = SmsManager.getDefault();  //如果你的字符数大于了70就开始拆了. ArrayList<String> smscontents =  smsManager.divideMessage(content);  //遍历发送信息 for(int i=0;i<smscontents.size();i++){ //发送短信的处理 smsManager.sendTextMessage(phone, null, smscontents.get(i), null, null); } //吐司效果 Toast.makeText(this, "发送信息成功", Toast.LENGTH_LONG).show(); }break;default:break;}}}

4.项目清单文件AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.lesson02_sms"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="17" />    <!-- 发送短信的权限 -->    <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="com.example.lesson02_sms.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>


对于发彩信的实现,主要是调用系统的意图来实现的,下面贴出activity中主要实现代码:希望同学们自己实现一下.

                               //获取外部存储文件目录File file = Environment.getExternalStorageDirectory();//目录要通过类的方法获取//创建意图Intent intent = new Intent(Intent.ACTION_SEND);//创建附带数据intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+file.getPath()+"/DCIM/Camera/20140502_112359.jpg"));//发送的地址intent.putExtra("address", "13103120533");//发送主题intent.putExtra("subject", "it's subject");//发送内容intent.putExtra("sms_body", "it's content");//发送的类型intent.setType("image/jpeg"); //执行意图SmsImgActivity.this.startActivity(intent);


以上代码仅供参考......

0 0
原创粉丝点击