在BroadcastReciever类中使用GeoCoder,android?

时间:2013-08-06 05:35:56

标签: android location broadcastreceiver google-geocoder

在我的应用程序中,如果用户在广播的帮助下关闭了应用程序,我会在固定的时间间隔后找到用户的位置。

然而,在我的Broadcast Reciever课程中,我得到了所需的Latitude&用户所在位置的经度。但是我如何使用该lat和long来在其帮助下找到用户的地址。

地理编码器需要活动上下文,但我有一个类扩展广播接收器。

    public class LocationReceiver extends BroadcastReceiver {
  @Override
public void onReceive(Context context, Intent intent) {

  Bundle b=intent.getExtras();
  Location loc=(Location)b.get(LocationPoller.EXTRA_LOCATION);

   // Getting latitude
    double latitude = loc.getLatitude();

    // Getting longitude
    double longitude = loc.getLongitude();
 System.out.println( loc.getLatitude());
 System.out.println(     loc.getLongitude());

      addGet(latitude,longitude) 
}

 public void addGet(double latitude,double longitude) {

Geocoder  geocoder = new Geocoder(this, Locale.getDefault());

    try
   {
     List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
       Log.e("Addresses","-->"+addresses);

   }
   catch (IOException e)
   {
       e.printStackTrace();

   }
  }

1 个答案:

答案 0 :(得分:2)

传递上下文。

    addGet(context, latitude,longitude);

    public void addGet(Context context,double latitude,double longitude) {
       Geocoder  geocoder = new Geocoder(context, Locale.getDefault());
}