받은 SMS_RECEIVED 브로드 캐스트를 다시 보내고 싶습니다. http://blog.dev001.net/post/14085892020/android-generate-incoming-sms-from-within-your-app과 비유하여합니다 : 여기 예를 발견했습니다SMS_RECEIVED 브로드 캐스트를 다시 보낼 수 있습니까?
boolean received=false;
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
if(!received) {
received=true;
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get("pdus");
SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);
abortBroadcast();
if(/*my condition here*/) {
Intent update = new Intent();
update.setClassName("com.android.mms", "com.android.mms.transaction.SmsReceiverService");
update.setAction("android.provider.Telephony.SMS_RECEIVED");
update.putExtra("pdus" , new Object[] { pdus });
startService(update);
}
}
}
}
};
그러나이 코드 충돌 com.android.mms은 (내가 "I/ActivityManager (71) 참조 : 프로세스 com.android.mms (PID (904)) 사망했다 "로그 캣에서)이 함께 :.
threadid=8: thread exiting with uncaught exception (group=0x4001d800)
FATAL EXCEPTION: SmsReceiverService
java.lang.ClassCastException: [Ljava.lang.Object;
at android.provider.Telephony$Sms$Intents.getMessagesFromIntent(Telephony.java:617)
at com.android.mms.transaction.SmsReceiverService.handleSmsReceived(SmsReceiverService.java:299)
at com.android.mms.transaction.SmsReceiverService.access$100(SmsReceiverService.java:67)
at com.android.mms.transaction.SmsReceiverService$ServiceHandler.handleMessage(SmsReceiverService.java:172)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.os.HandlerThread.run(HandlerThread.java:60)
어떻게 문제를 해결하려면?
정말 고맙습니다. 감사합니다. – BArtWell