在Android中,可以通过实现BroadcastReceiver来监听短信发送事件。以下是一个简单的示例代码:
- 创建一个新的BroadcastReceiver类,例如SMSBroadcastReceiver:
public class SMSBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras == null) {
return;
}
Object[] pdus = (Object[]) extras.get("pdus");
if (pdus == null) {
return;
}
for (Object pdu : pdus) {
SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdu);
String messageBody = sms.getMessageBody();
String phoneNumber = sms.getOriginatingAddress();
// 在这里处理收到的短信,可以发送到阿里云服务器或做其他操作
}
}
}
- 在AndroidManifest.xml文件中注册BroadcastReceiver:
<receiver android:name=".SMSBroadcastReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_SENT" />
</intent-filter>
</receiver>
其中,android.provider.Telephony.SMS_SENT
是发送短信的广播事件。
- 在应用中申请发送短信的权限:
<uses-permission android:name="android.permission.SEND_SMS" />
现在,当你发送短信时,SMSBroadcastReceiver的onReceive方法就会被调用,并且你可以在这里处理你的操作,例如发送到阿里云服务器。
请注意,这个示例只展示了如何监听短信发送事件,实际使用时需要根据具体需求进行适当的修改和处理。另外,由于Android系统的限制,从Android 4.4开始,普通应用无法拦截接收到的短信内容,只能在系统短信应用中处理。
Android短信发送监听是用于监听Android设备上短信发送的一种机制。你可以通过注册一个BroadcastReceiver来监听短信发送的状态。
首先,你需要在AndroidManifest.xml文件中声明以下权限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
然后,在你的代码中创建一个BroadcastReceiver来监听短信发送的状态:
public class SmsSentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("SENT_SMS_ACTION")) {
switch (getResultCode()) {
case Activity.RESULT_OK:
// 短信发送成功
Toast.makeText(context, "短信发送成功", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
// 短信发送失败
Toast.makeText(context, "短信发送失败", Toast.LENGTH_SHORT).show();
break;
}
}
}
}
接下来,你需要在你的代码中注册这个BroadcastReceiver:
SmsSentReceiver sentReceiver = new SmsSentReceiver();
IntentFilter sentFilter = new IntentFilter("SENT_SMS_ACTION");
registerReceiver(sentReceiver, sentFilter);
当你发送短信时,系统会发送一个广播来通知短信发送的状态,这时你的BroadcastReceiver的onReceive方法会被调用。你可以根据getResultCode()的返回值来判断短信发送的结果。
记得在合适的时候取消注册BroadcastReceiver:
unregisterReceiver(sentReceiver);
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/140382.html