Sto tentando di utilizzare LocationManager di Android RequestLocationUpdates. Tutto funziona fino a quando non cerco di estrarre l'oggetto posizione attuale nel mio ricevitore broadcast. Devo definire in modo specifico gli "extra" al mio intento personalizzato in modo che il LocationManager di Android prima di passarlo a requestLocationUpdates in modo che sappia come aggiungerlo nell'intento, o creerà il bundle extra indipendentemente da quando passa il licenziamento intento al destinatario della trasmissione?Android: come ottenere informazioni sulla posizione dagli extra del pacchetto di intenti quando si utilizza LocationManager.requestLocationUpdates()
Il mio codice simile a questo:
Intent intent = new Intent("com.myapp.swarm.LOCATION_READY");
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),
0, intent, 0);
//Register for broadcast intents
int minTime = 5000;
int minDistance = 0;
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime,
minDistance, pendingIntent);
Ho un ricevitore di broadcast che è definito nel manifesto come:
<receiver android:name=".LocationReceiver">
<intent-filter>
<action android:name="com.myapp.swarm.LOCATION_READY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
E la classe ricevitore broadcast:
public class LocationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Do this when the system sends the intent
Bundle b = intent.getExtras();
Location loc = (Location)b.get("KEY_LOCATION_CHANGED");
Toast.makeText(context, loc.toString(), Toast.LENGTH_SHORT).show();
}
}
Il mio oggetto "loc" sta arrivando a zero.
ricordarsi di NULL CHECK - non tutti questi intenti contengono oggetti 'Location' –