Android应用程序开发BroadcastReceiver编程作业编写一个程序,实现简单的短信收发操作
时间: 2023-06-17 22:03:03 浏览: 131
以下是一个简单的 Android 应用程序开发的 BroadcastReceiver 编程实现短信收发操作的示例代码:
1. 在 AndroidManifest.xml 文件中添加以下权限和 BroadcastReceiver 的声明:
```xml
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<receiver android:name=".SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
```
2. 创建一个 SmsReceiver 类,继承自 BroadcastReceiver,用于接收和处理短信:
```java
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 获取短信内容
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
for (Object pdu : pdus) {
SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdu);
String message = sms.getMessageBody();
String sender = sms.getOriginatingAddress();
// 处理收到的短信
Toast.makeText(context, "收到来自 " + sender + " 的短信:" + message, Toast.LENGTH_LONG).show();
}
}
}
```
3. 创建一个发送短信的方法:
```java
import android.telephony.SmsManager;
public void sendSms(String phoneNumber, String message) {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNumber, null, message, null, null);
}
```
4. 在需要发送短信的地方调用 sendSms 方法:
```java
sendSms("10086", "Hello, world!");
```
以上是一个简单的短信收发操作的实现。需要注意的是,发送短信需要获取 SEND_SMS 权限,并且需要处理短信发送成功或失败的回调。
阅读全文
相关推荐















