在Android中,SMS的状态是通过一个整数值来表示的。70代表的是SMS状态为正在发送中。
以下是一个示例代码,演示如何获取SMS的状态:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
SmsMessage[] messages = SmsManager.getDefault().getMessagesFromIntent(intent);
for (SmsMessage message : messages) {
int status = message.getStatus();
if (status == 70) {
Log.d("SmsReceiver", "SMS status is sending");
}
}
}
}
}
在上述示例中,我们创建了一个SmsReceiver
类,实现了BroadcastReceiver
接口,并重写了onReceive
方法。在onReceive
方法中,我们首先检查接收到的Intent的Action是否为android.provider.Telephony.SMS_RECEIVED
,然后通过SmsManager.getDefault().getMessagesFromIntent(intent)
方法获取到短信信息数组。接着,我们遍历每个短信信息,获取其状态值,并判断是否等于70。如果状态为70,则打印日志信息表示SMS的状态为正在发送中。