// 接收短信的广播
class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object[] pdus = (Object[]) bundle.get("pdus"); // 提取短信消息
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
String address = messages[0].getOriginatingAddress(); // 获取发送方号码
String fullMessage = "";
for (SmsMessage message : messages) {
fullMessage += message.getMessageBody(); // 获取短信内容
}
textView.setText("address; " + address + ", message: " + fullMessage);
abortBroadcast();
}
}
// 注册接收广播
IntentFilter intentFilter1 = new IntentFilter();
intentFilter1.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
intentFilter1.addAction("android.provider.Telephony.SMS_RECEIVED");
messageReceiver = new MessageReceiver();
registerReceiver(messageReceiver, intentFilter1);
<uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" />
// 发送短信
public void send(View view) {
SmsManager smsManager = SmsManager.getDefault();
String destinationAddress = "15527100207";
String text = "我爱你!";
Intent intent1 = new Intent(SENT_SMS_ACTION);
PendingIntent sentIntent = PendingIntent.getBroadcast(this, 0, intent1, 0);
Intent intent2 = new Intent(DELIVERY_SMS_ACTION);
PendingIntent deliveryIntent = PendingIntent.getBroadcast(this, 0, intent2, 0);
smsManager.sendTextMessage(destinationAddress, null, text, sentIntent, deliveryIntent); // aidl服务,进程间的通信
}
public void sendTextMessage(String destinationAddress, String scAddress, String text,PendingIntent sentIntent, PendingIntent deliveryIntent) destinationAddress: // 目的地,也就是对方的手机号 scAddress: // 服务中心地址,为空的话就是默认的SMSC text: // 发送消息的具体内容 sentIntent: // 当消息成功或者失败发送时,就发起这个广播 deliveryIntent: // 当消息到达目的地时,就发起这个广播
// 发送短信的状态广播
class MessageBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 一个10位数的号码发送,也能成功,但是对方没有接收短信。
if (getResultCode() == RESULT_OK) {
Toast.makeText(MainActivity.this, "发送成功!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "发送失败!", Toast.LENGTH_SHORT).show();
}
}
}
// 当消息被传递给收件人时
class DeliveryBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(MainActivity.this, "对方接收短信成功!", Toast.LENGTH_SHORT).show();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有