Estoy tratando de usar el LocationManager de Android requestLocationUpdates. Todo funciona hasta que intento extraer el objeto de ubicación real que está en mi receptor de difusión. ¿Debo definir específicamente los "extras" a mi intención personalizada para que el LocationManager de Android antes de pasarlo a requestLocationUpdates para que sepa cómo agregarlo a la intención, o creará el paquete de extras independientemente de cuándo pase el encendido intención para el receptor de difusión?Android: Cómo obtener información de ubicación de los paquetes de intent extras cuando utilizo LocationManager.requestLocationUpdates()
Mi código es el siguiente:
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);
que tienen un receptor de radiodifusión que se define en el manifiesto como:
<receiver android:name=".LocationReceiver">
<intent-filter>
<action android:name="com.myapp.swarm.LOCATION_READY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
Y la clase receptor de radiodifusión como:
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();
}
}
Mi objeto "loc" está subiendo nulo.
recuerde NULL CHECK - no todas estas intenciones contienen objetos 'Location' –