簡體   English   中英

Android如何使用意圖將數據發送到廣播接收器

[英]Android how to send data to a broadcast receiver using intents

我正在編寫一個應用程序,每當我靠近特定的興趣點時,我都會啟動一個接近警報(我從mysql數據庫讀取poi信息)。 當BroadcastReceiver獲得此意圖時,它會創建一個通知,並且一切正常。 當我單擊通知時,我想要一個活動開始,因此,我需要向廣播接收器發送一些參數(基本上是字符串),以便它將這個參數傳遞給我要開始的活動。 問題是,當我嘗試將這些參數通過意圖傳遞給廣播接收器時,會出現此錯誤:接收廣播意圖flg = 0x10時出錯有其他錯誤。

我以這種方式發送參數:

 private void addProximityAlert(Annuncio a){
   double latitudine = a.lat; 
   double longitudine = a.lon; 
   Intent intent = new Intent(PROX_ALERT_INTENT);
   intent.putExtra("nome", nome); 
   PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent,0);
   locationManager.addProximityAlert(latitudine, longitudine, RAGGIO, ALERT_EXPIRATION, pi); 
   IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT); 
   registerReceiver(new ProximityIntentReceiver(),filter);
}

這是接收者:

public class ProximityIntentReceiver extends BroadcastReceiver{  
   public void onReceive(Context context, Intent intent){
       String nome = intent.getExtras().getString("nome");
       Log.v("nome", nome);


   } 
}

我想念什么?

06-29 22:42:46.103: E/AndroidRuntime(3723): FATAL EXCEPTION: main
06-29 22:42:46.103: E/AndroidRuntime(3723): java.lang.RuntimeException: Error receiving broadcast Intent { act=com.carmen.progettosmp.PROXIMITY_ALERT flg=0x10 (has extras) } in com.carmen.progettosmp.ProximityIntentReceiver@427a2f58
06-29 22:42:46.103: E/AndroidRuntime(3723):     at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:795)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at android.os.Handler.handleCallback(Handler.java:615)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at android.os.Looper.loop(Looper.java:153)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at android.app.ActivityThread.main(ActivityThread.java:4987)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at java.lang.reflect.Method.invokeNative(Native Method)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at java.lang.reflect.Method.invoke(Method.java:511)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at dalvik.system.NativeStart.main(Native Method)
06-29 22:42:46.103: E/AndroidRuntime(3723): Caused by: java.lang.NullPointerException: println needs a message
06-29 22:42:46.103: E/AndroidRuntime(3723):     at android.util.Log.println_native(Native Method)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at android.util.Log.v(Log.java:117)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at com.carmen.progettosmp.ProximityIntentReceiver.onReceive(ProximityIntentReceiver.java:29)
06-29 22:42:46.103: E/AndroidRuntime(3723):     at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:785)
06-29 22:42:46.103: E/AndroidRuntime(3723):     ... 9 more

如果要創建通知,則必須創建一個PendingIntent,而該PendingIntent卻包含一個Intent。 您不能在Intent中設置這些額外功能嗎? 另外,聽起來您可能會從Geofencing API中受益。 還有一件事,您正在尋找字符串“ ciao”作為密鑰,您是否不應該尋找密鑰名稱?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM