如何通过onreceive()函数发送位置(经度和纬度)?

时间:2011-10-28 15:28:23

标签: java android gps sms location

我有一个应用程序需要在接收短信时发送位置。我的问题是如何发送位置,因为我继承了broadcastreceiver类,并且不能继承MapActivity来利用locationmanager来获取位置。(多重继承没有允许在java)。任何人都可以告诉我如何这样做?

2 个答案:

答案 0 :(得分:1)

onReceive中,您会获得对应用的竞争对象的引用。 所以你可以这样做:

LocationManager lm = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);

LocationManager与MapAcivity无关。您可以在任何有上下文对象(任何活动/服务,以及BroadcastReceiver onReceive方法和其他地方)的任何地方获得对它的引用。

答案 1 :(得分:0)

这里不需要多重继承,只需委托:广播接收器的一个实例可以简单地调用另一个对象上的方法,例如: Activity

可以使用内部类来做到这一点,这样你就可以在同一个类中拥有接收者和Activity的代码,如果这就是你想要的。

例:

public class MyActivity extends MapActivity {

  protected class MyReceiver extends BroadcastReceiver {

    // ...

    void someMethod() {
      MyActivity.this.doSomethingInActivity( value );
    }

  }


  protected void doSomethingInActivity(Object param) {...}

}