Android 如何将数据从广播接收器传输到服务
我正在制作一个应用程序,用于通过短信进行投票。我想要的是,如果有人说“是”,我的“是”计数得到+1,对于“否”的情况也是一样,我希望这是在后台完成的,所以我使用的是服务。并在myAndroid 如何将数据从广播接收器传输到服务,android,broadcastreceiver,android-service,Android,Broadcastreceiver,Android Service,我正在制作一个应用程序,用于通过短信进行投票。我想要的是,如果有人说“是”,我的“是”计数得到+1,对于“否”的情况也是一样,我希望这是在后台完成的,所以我使用的是服务。并在myMainActivity上显示最终结果。我尝试了,并编写了以下代码: 广播接收机 /*Bundle bundle = intent.getExtras(); SmsMessage[] msg = null; String body = ""; if (bundle !=
MainActivity
上显示最终结果。我尝试了,并编写了以下代码:
广播接收机
/*Bundle bundle = intent.getExtras();
SmsMessage[] msg = null;
String body = "";
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
msg = new SmsMessage[pdus.length];
for (int i = 0; i < msg.length; i++) {
body = msg[i].getMessageBody().toString();
}
}*/
String body = "yes";
if(body.equals("YES") || body.equals("yes")|| body.equals("y") || body.equals("Y")){
Intent yes = new Intent(context,PollCounter.class);
yes.putExtra("yes", true);
yes.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(yes);
context.stopService(yes);
}
else if(body.equals("NO") || body.equals("no")|| body.equals("n") || body.equals("N")){
Intent no = new Intent(context,PollCounter.class);
no.putExtra("no", true);
no.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(no);
context.stopService(no);
}
else {
Intent invalidMsg = new Intent(context,PollCounter.class);
invalidMsg.putExtra("invalidMsg", true);
context.startService(invalidMsg);
}
}
}
我尝试使用Bundle b=intent.getExtras()代码>但我不确定如何使用它,以及我应该用什么初始化intent
谢谢
附言:我对安卓系统还不熟悉。对不起,如果我的问题有点奇怪或者我的编码看起来很奇怪 你好像忘了
msg[i] = SmsMessage.createFromPdu((byte[])pduArray [i]);
在你的周期中
应该是
for (int i = 0; i < msg.length; i++) {
msg[i] = SmsMessage.createFromPdu((byte[])pduArray [i]);
body = msg[i].getMessageBody().toString();
}
for(int i=0;i
否则getMessageBody()
确实会返回null
始终在此处发布完整的日志猫//谢谢,该问题已解决。。。我会在将来发布logcat。。。数据传输呢。。请在这方面需要帮助…看来你的问题实际上是两个独立的问题。其中一个问题已得到答复。也许你需要编辑这篇文章来澄清另一个问题是什么?谢谢。。。这解决了我的一个问题。。。我真的忘了。。。请给我介绍一下从BroadcastReceiver到Service的数据传输……主要问题是如何从BroadcastReceiver
到Service
获取数据。。我无法获得数据。。。我不知道怎么做。。。
msg[i] = SmsMessage.createFromPdu((byte[])pduArray [i]);
for (int i = 0; i < msg.length; i++) {
msg[i] = SmsMessage.createFromPdu((byte[])pduArray [i]);
body = msg[i].getMessageBody().toString();
}