接收位置更新

时间:2015-01-28 21:11:43

标签: android

我正在尝试编写一个应用程序,它将更新有关当前电话位置的信息,因此我从开发人员Android培训中获取了代码。 http://developer.android.com/training/location/receive-location-updates.html

有一行

LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mLocationRequest, this);

但是我在这行说错了

Error:(159, 42) java: no suitable method found for requestLocationUpdates(com.google.android.gms.common.api.GoogleApiClient,com.google.android.gms.location.LocationRequest,com.example.gpsWakeUpper.MyActivity)
method com.google.android.gms.location.FusedLocationProviderApi.requestLocationUpdates(com.google.android.gms.common.api.GoogleApiClient,com.google.android.gms.location.LocationRequest,com.google.android.gms.location.LocationListener) is not applicable
  (argument mismatch; com.example.gpsWakeUpper.MyActivity cannot be converted to com.google.android.gms.location.LocationListener)
method com.google.android.gms.location.FusedLocationProviderApi.requestLocationUpdates(com.google.android.gms.common.api.GoogleApiClient,com.google.android.gms.location.LocationRequest,android.app.PendingIntent) is not applicable
  (argument mismatch; com.example.gpsWakeUpper.MyActivity cannot be converted to android.app.PendingIntent)

我的类实现了这样的接口

public class MyActivity extends FragmentActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, GoogleMap.OnMapClickListener, android.location.LocationListener

如何更改代码以便它开始工作?我想知道为什么android站点的代码不起作用。

2 个答案:

答案 0 :(得分:7)

您是否尝试过实施com.google.android.gms.location.LocationListener而不是android.location.LocationListener

答案 1 :(得分:1)

这不起作用,因为你需要有一个locationListener来监听来自LocationServices.FusedLocationApi.requestLocationUpdates的位置变化 参考doc。根据在前台活动中监听位置更改的文档,您应该传递LocationListener,或者如果您想要监听背景中的更改,则应使用PendingIntent。 在您的情况下,您传递的活动参考不会扩展任何两个必需的类 根据您的要求创建一个新类来实现LocationListenerPending intent,然后将其作为方法调用中的最后一个参数传递。