一、效果图

Android的第三个应用---短信发送器

二、

因为应用要使用手机的短信服务,所以要在清单文件AndroidManifest.xml中添加短信服务权限:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.itcast.sms"
android:versionCode="1"
android:versionName="1.0">
略....
<uses-sdk android:minSdkVersion=“4" />
<uses-permission android:name="android.permission.SEND_SMS"/>
</manifest>

三、布局界面

<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"    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=".SmsActivity" >    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/phone_num" />    <EditText        android:id="@+id/phonenum"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/textView1"        android:layout_below="@+id/textView1"        android:layout_marginTop="15dp"        android:ems="10"        android:inputType="phone" >        <requestFocus />    </EditText>        <TextView         android:id="@+id/sms_content"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/phonenum"        android:layout_marginTop="15dp"        android:text="@string/sms_content"                />    <EditText        android:id="@+id/smsContent"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/sms_content"        android:layout_below="@+id/sms_content"        android:layout_marginTop="26dp"        android:ems="10"        android:inputType="textMultiLine" />    <Button        android:id="@+id/sendButton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+id/smsContent"        android:layout_below="@+id/smsContent"        android:layout_marginTop="58dp"        android:text="@string/send_button" /></RelativeLayout>


四、布局界面中引用的string属性

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">lession01-Sms</string>    <string name="action_settings">Settings</string>    <string name="hello_world">Hello world!</string><string name="phone_num">请输入电话号码</string><string name="sms_content">请输入短信内容</string><string name="send_button">发送信息</string></resources>


五、SmsActivity代码:

package com.example.lession01_sms;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.app.PendingIntent;import android.content.Intent;import android.telephony.SmsManager;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class SmsActivity extends Activity {//声明组件public Button sendButton;public EditText smsContent;public EditText phonenum;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //设置显示的视图        setContentView(R.layout.activity_sms);                //获取组件        sendButton=(Button) findViewById(R.id.sendButton);        smsContent=(EditText) findViewById(R.id.smsContent);        phonenum=(EditText) findViewById(R.id.phonenum);                //给按钮注册事件        sendButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//获取电话号码String phone_num=phonenum.getText().toString();//创建意图对象Intent intent = new Intent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/20.jpg"));intent.putExtra("address", phone_num);intent.putExtra("exit_on_sent", true);intent.putExtra("subject", "subject:I love you!!!!!!");intent.putExtra("sms_body", "content ::XXXX");intent.setType("image/jpeg");   startActivity(intent);}});    }            public void send(){    //获取电话号码String phone_num=phonenum.getText().toString();//获取短信的内容String sms_content=smsContent.getText().toString();//获取短信管理器对象SmsManager smsManager=SmsManager.getDefault();//意图对象PendingIntent pendingIntent=PendingIntent.getBroadcast(SmsActivity.this, 0, new Intent(), 0);//发送信息操作smsManager.sendTextMessage(phone_num, null, sms_content, pendingIntent, null);//Toast的效果Toast.makeText(SmsActivity.this, "短信发送成功", Toast.LENGTH_LONG).show();    }        @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.sms, menu);        return true;    }    }


六、测试步骤

1>在Eclipse中运行此应用
2>在Dos窗口中进入android SDK安装路径的tools目录,输入以下命令再开启一个Android模拟器:
emulator -data csdn
注:icsdn为用户数据存取文件,如果该文件不存在,默认在tools目录创建该文件
Android的第三个应用---短信发送器

3>在短信发送器的手机号中输入上图现显的电话号码

注:目前Android系统对中文短信尚未支持,所以发送中文短信会有乱码,这个问题日后会被解决的。

更多相关文章

  1. Android(java)学习笔记99:android的短信发送器研究
  2. Android:短信发送器
  3. Android 通过intent 传递对象
  4. 服务器向Android写一个对象
  5. Android发短信程序
  6. Android 使用内容解析者往短信数据库里插入一条数据
  7. Android 接收短信并屏蔽notification 提示
  8. WCF 实例 —— Android 短信助手 (WCF + Android) (1)

随机推荐

  1. android之首选项相关 Preferences(一)
  2. Android(安卓)ListView实现通讯录的实例
  3. APP安全之APK完整性校验
  4. Android中非aidl实现进程间通信(编写顺序
  5. Animation动画平移和旋转的结合使用
  6. 同一款Android软件有两样东西是不会变的:
  7. Android组件之服务---Service
  8. android知识点大总结
  9. [置顶] Android(安卓)开发系列:Android(安
  10. Android(安卓)的签名