注意:
1. 在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager之后应该用 android.telephony.SmsManager;
2. 设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。
设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为 wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。
发送短信的关键程序是通过SmsManager对象的sendTextMessage()方法来完成,其中sendTextMessage()方法需传入五个值,依次是收件人地址(String),发送地址(String),发送服务(PendingIntent)与送达服务(PendingIntent),其中收件人与正文是不可为null的两个参数.本例子通过两个模拟器,5554,5556互相通信,下面我将分5个步骤,讲一下发送短信程序是如何实现的.
贴代码:
MainActivity.Java
package com.android.study; import android.app.Activity; import android.app.PendingIntent; import android.content.Intent; 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 MainActivity extends Activity { private Button mButton1; private EditText mEditText1; private EditText mEditText2; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取资源 mEditText1 = (EditText)findViewById(R.id.myEditText1); mEditText2 = (EditText)findViewById(R.id.myEditText2); mButton1 = (Button)findViewById(R.id.myButton1); //发送短信的响应 mButton1.setOnClickListener(new Button.OnClickListener(){ public void onClick(View v) { //获取发送地址和发送内容 String messageAddress = mEditText1.getText().toString(); String messageContent = mEditText2.getText().toString(); //构建一取得default instance的SmsManager对象 SmsManager smsManager = SmsManager.getDefault(); //检查输入内容是否为空,这里为了简单就没有判断是否是号码,短信内容长度的限制也没有做 if(messageAddress.trim().length()!=0 && messageContent.trim().length()!=0) { try{ PendingIntent pintent = PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(), 0); smsManager.sendTextMessage(messageAddress, null, messageContent, pintent, null); }catch(Exception e) { e.printStackTrace(); } //提示发送成功 Toast.makeText(MainActivity.this, "发送成功", Toast.LENGTH_LONG).show(); } else{ Toast.makeText(MainActivity.this, "发送地址或者内容不能为空", Toast.LENGTH_SHORT).show(); } } }); } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="收件 人:" android:textSize="16sp" android:layout_x="0px" android:layout_y="12px" > </TextView> <EditText android:id="@+id/myEditText1" android:layout_width="100px" android:layout_height="wrap_content" android:text="" android:textSize="18sp" android:layout_x="60px" android:layout_y="2px" > </EditText> <EditText android:id="@+id/myEditText2" android:layout_width="fill_parent" android:layout_height="223px" android:text="" android:textSize="18sp" android:layout_x="0px" android:layout_y="52px" > </EditText> <Button android:id="@+id/myButton1" android:layout_width="162px" android:layout_height="wrap_content" android:text="发送短信" android:layout_x="80px" android:layout_y="302px" > </Button> </AbsoluteLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.study" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <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> <uses-permission android:name="android.permission.SEND_SMS"></uses-permission> </manifest>
转自:http://weizhulin.blog.51cto.com/1556324/311699