作者:xxyy | 来源:互联网 | 2023-09-13 10:03
我已经实现了广播接收器,以读取传入的SMS并在收到新的SMS时执行某些任务。我已使用Toast
确保接收器正在工作。它总是在收到新消息时完美地敬酒,但是却无能为力。
public class SMSListener extends BroadcastReceiver {
public static String TAG ="SMSListener";
static Excecuter excecuter;
StaticPaymentManager manager;
private SharedPreferences preferences;//1 TK
@Override
public void onReceive(Context context,Intent intent) {
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,TAG);
wl.acquire();
Bundle data = intent.getExtras();
Object[] pdus = (Object[]) data.get("pdus");
for(int i=0; i SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);
String message = "Sender : " + smsMessage.getDisplayOriginatingAddress()
+ "Email From: " + smsMessage.getEmailFrom()
+ "Emal Body: " + smsMessage.getEmailBody()
+ "Display message body: " + smsMessage.getDisplayMessageBody()
+ "Time in millisecond: " + smsMessage.getTimestampMillis()
+ "Message: " + smsMessage.getMessageBody();
excecuter.onSMSReceived(message,context);
Log.e("SMSRECEIVED",message);//These are not even printing
Log.d("SMSRECEIVED",message);//These are not even printing
Log.w("SMSRECEIVED",message);//These are not even printing
Toast.makeText(context,"My Message Receivedddf: " + message,Toast.LENGTH_SHORT).show();//But Toast is working fine.
//Log.e("SMSRECEIVED",message);
try {
if (manager==null)manager = new StaticPaymentManager(context);
manager.enqueuePayment(smsMessage.getMessageBody());
}catch (Exception e){
//e.printStackTrace();
}
wl.release();
}
}
public static void bindExecutor(Excecuter excecuter){
SMSListener.excecuter=excecuter;
}
}
我尝试至少在日志上打印SMS,但它甚至没有记录在日志中。可能是什么问题?