Android 发送短信小程序
2013-05-08 13:37
399 查看
该代码为其添加了广播接收者的监听。详细代码如下
java代码:
package eoe.demo;
import java.util.ArrayList;
import java.util.Iterator;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Send extends Activity {
private String message;
private String number ;
private EditText editText;
private EditText editText2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) this.findViewById(R.id.number);
editText2 = (EditText)this.findViewById(R.id.message);
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
number = editText.getText().toString();
message = editText2.getText().toString();
// 在LogCat中可以查看到number和message的相关信息
Log.i("number", number);
Log.i("message", message);
/*获取系统默认的信息管理器,一定要注意的是SmsManager是android.telephony.SmsManager;这和
*我们使用的版本有关,在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager
*Android 2.0 之后的版本应该用 android.telephony.SmsManager。
*/
SmsManager smsManager = SmsManager.getDefault();
/*PendingIntent.getBroadcast返回一个用于广播的PendingIntent对象,类似于调用Content.sendBroadcast();
*/
PendingIntent paIntent = PendingIntent.getBroadcast(Send.this, 0, new Intent("SMS_SENT2"), 0);
PendingIntent deliveryIntent = PendingIntent.getBroadcast(Send.this, 0, new Intent("SMS_DELIVERED2"), 0);
// 注册一个BroadcastReceiver,当有匹配它的IntentFilter的Intent出现时,该方法会被触发
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
int resultCode = getResultCode();
switch(resultCode){
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "信息发送成功了哦、", Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(getBaseContext(), "信息发送失败了哦、", Toast.LENGTH_LONG).show();
}
}
}, new IntentFilter("SMS_SENT2"));
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(getBaseContext(), "deliveryIntent", Toast.LENGTH_LONG).show();
Log.i("短信接收人是否查看信息", "看了");
}
}, new IntentFilter("SMS_DELIVERED2"));
// smsManager.divideMessage有些时候短信如果超过了字数,我们就需要这个方法来帮我们拆分短信内容。
ArrayList<String> smses = smsManager.divideMessage(message);
Iterator<String> iterator = smses.iterator();
while(iterator.hasNext()){
String temp = iterator.next();
//发送短信
smsManager.sendTextMessage(number, null, temp, paIntent, deliveryIntent);
}
// 弹出一个浮动框显示提示内容,Toast.LENGTH_LONG代表浮动框显示时间的长短
Toast.makeText(Send.this, "短信发送完成", Toast.LENGTH_LONG).show();
}
});
}
}
registerReceiver()用于注册广播接受者。该方法在Content中这样定义的。
public abstract Intent registerReceiver(BroadcastReceiver receiver,IntentFilter filter);系统如果查询到满足filter的广播,便会教给receiver,让其处理。一般都是在其onReceive()方法中处理。
如果不是在代码中主动通过registerReceiver()进行注册,那么就要从AndroidManifest.xml进行配置,代码如下
<receiver android:name="类名">
<intent-filter>
<action android:name="接收者中Intent参数的action属性" />
</intent-filter>
</receiver>
java代码:
package eoe.demo;
import java.util.ArrayList;
import java.util.Iterator;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Send extends Activity {
private String message;
private String number ;
private EditText editText;
private EditText editText2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) this.findViewById(R.id.number);
editText2 = (EditText)this.findViewById(R.id.message);
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
number = editText.getText().toString();
message = editText2.getText().toString();
// 在LogCat中可以查看到number和message的相关信息
Log.i("number", number);
Log.i("message", message);
/*获取系统默认的信息管理器,一定要注意的是SmsManager是android.telephony.SmsManager;这和
*我们使用的版本有关,在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager
*Android 2.0 之后的版本应该用 android.telephony.SmsManager。
*/
SmsManager smsManager = SmsManager.getDefault();
/*PendingIntent.getBroadcast返回一个用于广播的PendingIntent对象,类似于调用Content.sendBroadcast();
*/
PendingIntent paIntent = PendingIntent.getBroadcast(Send.this, 0, new Intent("SMS_SENT2"), 0);
PendingIntent deliveryIntent = PendingIntent.getBroadcast(Send.this, 0, new Intent("SMS_DELIVERED2"), 0);
// 注册一个BroadcastReceiver,当有匹配它的IntentFilter的Intent出现时,该方法会被触发
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
int resultCode = getResultCode();
switch(resultCode){
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "信息发送成功了哦、", Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(getBaseContext(), "信息发送失败了哦、", Toast.LENGTH_LONG).show();
}
}
}, new IntentFilter("SMS_SENT2"));
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(getBaseContext(), "deliveryIntent", Toast.LENGTH_LONG).show();
Log.i("短信接收人是否查看信息", "看了");
}
}, new IntentFilter("SMS_DELIVERED2"));
// smsManager.divideMessage有些时候短信如果超过了字数,我们就需要这个方法来帮我们拆分短信内容。
ArrayList<String> smses = smsManager.divideMessage(message);
Iterator<String> iterator = smses.iterator();
while(iterator.hasNext()){
String temp = iterator.next();
//发送短信
smsManager.sendTextMessage(number, null, temp, paIntent, deliveryIntent);
}
// 弹出一个浮动框显示提示内容,Toast.LENGTH_LONG代表浮动框显示时间的长短
Toast.makeText(Send.this, "短信发送完成", Toast.LENGTH_LONG).show();
}
});
}
}
registerReceiver()用于注册广播接受者。该方法在Content中这样定义的。
public abstract Intent registerReceiver(BroadcastReceiver receiver,IntentFilter filter);系统如果查询到满足filter的广播,便会教给receiver,让其处理。一般都是在其onReceive()方法中处理。
如果不是在代码中主动通过registerReceiver()进行注册,那么就要从AndroidManifest.xml进行配置,代码如下
<receiver android:name="类名">
<intent-filter>
<action android:name="接收者中Intent参数的action属性" />
</intent-filter>
</receiver>
相关文章推荐
- Android调用拨号程序,短信发送
- Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!
- android 短信发送程序
- Android小程序:实现发送短信
- Android发送短信、打电话、发送邮件的程序集合&&广播权限
- Android之路——第二个Android小程序(Android短信发送)
- Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!
- Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!
- Android外部监听类-发送短信程序
- Android短信发送程序
- Android调用发送短信程序
- Android发送短信的病毒程序
- Android基础教程之SMS简单发送短信程序
- Android之路——第二个Android小程序(Android短信发送)
- 第73章、再识Intent-调用发送短信程序(从零开始学Android)
- Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!
- Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!
- Android开发中实现发送短信的小程序示例
- Android自制发送短信程序
- android之发送短信程序