|
|
@@ -10,28 +10,47 @@ import android.telephony.SmsMessage;
|
|
|
import android.util.Log;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
public class SmsReceiver extends BroadcastReceiver {
|
|
|
private static final String TAG = "SmsReceiver";
|
|
|
|
|
|
@Override
|
|
|
public void onReceive(Context context, Intent intent) {
|
|
|
- SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
|
|
|
- for (SmsMessage message : messages) {
|
|
|
- String sender = message.getOriginatingAddress();
|
|
|
- String messageBody = message.getMessageBody();
|
|
|
- Log.d(TAG, "onReceive: sender: " + sender + " message: " + messageBody);
|
|
|
- Toast.makeText(context, messageBody, Toast.LENGTH_LONG).show();
|
|
|
- Bundle bundle = intent.getExtras();
|
|
|
-
|
|
|
+ Bundle bundle = intent.getExtras();
|
|
|
+ if (Objects.equals(intent.getAction(), "android.provider.Telephony.SMS_RECEIVED")) {
|
|
|
+ Log.d(TAG, "onReceive: SMS_RECEIVED");
|
|
|
if (bundle != null) {
|
|
|
for (String key : bundle.keySet()) {
|
|
|
Object value = bundle.get(key);
|
|
|
// 处理每个键值对
|
|
|
Log.d("Bundle", "key=" + key + ", value=" + value.toString() + ", class=" + value.getClass().getName());
|
|
|
}
|
|
|
- byte[][] pdus = (byte[][]) bundle.get("pdus");
|
|
|
- MainActivity.printPdu(pdus[0]);
|
|
|
+ Object[] pdus = (Object[]) bundle.get("pdus");
|
|
|
+ MainActivity.printPdu((byte[]) pdus[0]);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (Objects.equals(intent.getAction(), "android.provider.Telephony.SMS_DELIVER")) {
|
|
|
+ Log.d(TAG, "onReceive: SMS_DELIVER");
|
|
|
+ SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
|
|
|
+ for (SmsMessage message : messages) {
|
|
|
+ String sender = message.getOriginatingAddress();
|
|
|
+ String messageBody = message.getMessageBody();
|
|
|
+ Log.d(TAG, "onReceive: sender: " + sender + " message: " + messageBody);
|
|
|
+ Toast.makeText(context, messageBody, Toast.LENGTH_LONG).show();
|
|
|
+
|
|
|
+
|
|
|
+ if (bundle != null) {
|
|
|
+ for (String key : bundle.keySet()) {
|
|
|
+ Object value = bundle.get(key);
|
|
|
+ // 处理每个键值对
|
|
|
+ Log.d("Bundle", "key=" + key + ", value=" + value.toString() + ", class=" + value.getClass().getName());
|
|
|
+ }
|
|
|
+ byte[][] pdus = (byte[][]) bundle.get("pdus");
|
|
|
+ MainActivity.printPdu(pdus[0]);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|