why is my intent not useful?
Posted
by
user1634887
on Stack Overflow
See other posts from Stack Overflow
or by user1634887
Published on 2012-08-30T03:36:18Z
Indexed on
2012/08/30
3:38 UTC
Read the original article
Hit count: 165
android
|android-intent
This is my first to ask here. I write the code for a Broadcast A start another Broadcast B. But the Broadcast B didn't get the intent's value.
Broadcast A:get the sms contain message and start B
public void onReceive(Context context, Intent intent) {
Object[] pdus=(Object[])intent.getExtras().get("pdus");
for(Object pdu:pdus)
{
byte[] date=(byte[])pdu;
SmsMessage message=SmsMessage.createFromPdu(date);
String sender=message.getOriginatingAddress();
String body=message.getMessageBody();
if(sender.equals(AppUtil.herPhone)&&body.regionMatches(0, AppUtil.herSmsText, 0, 18))
{
Toast.makeText(context, body, Toast.LENGTH_LONG).show();
String [] bodyArray=body.split(" ");
String longitude=bodyArray[1];
String latitude=bodyArray[2];
**Intent uiIntent=new Intent();
Bundle bundle=new Bundle();
bundle.putString("longitude", longitude);
bundle.putString("latitude", latitude);
uiIntent.putExtras(bundle);
uiIntent.setAction("android.janmac.location");
context.sendBroadcast(uiIntent);**
abortBroadcast();
}
}
}
Boardcast B: it nest in an Activity. register:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AppUtil.SendMessage(MainActivity.this);
uiReceiver=new UIReceiver();
IntentFilter filter=new IntentFilter();
filter.addAction("android.janmac.location");
registerReceiver(uiReceiver, filter);
}
});
extend: private class UIReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.v("location","uireceiver????!");
**Bundle bundle=new Bundle();
bundle=intent.getExtras();
herLongitude=Double.valueOf(bundle.getString("longitude"));
herLatitude=Double.valueOf(bundle.getString("latitude"));**
}
}
but the bundle couldn't get any values.
here is log:
08-30 11:17:40.494: D/AndroidRuntime(2359): Shutting down VM 08-30 11:17:40.514: W/dalvikvm(2359): threadid=1: thread exiting with uncaught exception (group=0x40018560) 08-30 11:17:40.544: E/AndroidRuntime(2359): FATAL EXCEPTION: main 08-30 11:17:40.544: E/AndroidRuntime(2359): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.janmac.location (has extras) } in com.example.locationclient.MainActivity$UIReceiver@40513690 08-30 11:17:40.544: E/AndroidRuntime(2359): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:722) 08-30 11:17:40.544: E/AndroidRuntime(2359): at android.os.Handler.handleCallback(Handler.java:587) 08-30 11:17:40.544: E/AndroidRuntime(2359): at android.os.Handler.dispatchMessage(Handler.java:92) 08-30 11:17:40.544: E/AndroidRuntime(2359): at android.os.Looper.loop(Looper.java:130) 08-30 11:17:40.544: E/AndroidRuntime(2359): at android.app.ActivityThread.main(ActivityThread.java:3835) 08-30 11:17:40.544: E/AndroidRuntime(2359): at java.lang.reflect.Method.invokeNative(Native Method) 08-30 11:17:40.544: E/AndroidRuntime(2359): at java.lang.reflect.Method.invoke(Method.java:507) 08-30 11:17:40.544: E/AndroidRuntime(2359): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864) 08-30 11:17:40.544: E/AndroidRuntime(2359): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622) 08-30 11:17:40.544: E/AndroidRuntime(2359): at dalvik.system.NativeStart.main(Native Method) 08-30 11:17:40.544: E/AndroidRuntime(2359): Caused by: java.lang.NumberFormatException 08-30 11:17:40.544: E/AndroidRuntime(2359): at org.apache.harmony.luni.util.FloatingPointParser.parseDblImpl(Native Method) 08-30 11:17:40.544: E/AndroidRuntime(2359): at org.apache.harmony.luni.util.FloatingPointParser.parseDouble(FloatingPointParser.java:283) 08-30 11:17:40.544: E/AndroidRuntime(2359): at java.lang.Double.parseDouble(Double.java:318) 08-30 11:17:40.544: E/AndroidRuntime(2359): at java.lang.Double.valueOf(Double.java:356) 08-30 11:17:40.544: E/AndroidRuntime(2359): at com.example.locationclient.MainActivity$UIReceiver.onReceive(MainActivity.java:231) 08-30 11:17:40.544: E/AndroidRuntime(2359): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:709) 08-30 11:17:40.544: E/AndroidRuntime(2359): ... 9 more enter code here
© Stack Overflow or respective owner