我正在尝试编写一个应用程序,它将更新有关当前电话位置的信息,因此我从开发人员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站点的代码不起作用。
答案 0 :(得分:7)
您是否尝试过实施com.google.android.gms.location.LocationListener
而不是android.location.LocationListener
?
答案 1 :(得分:1)
这不起作用,因为你需要有一个locationListener来监听来自LocationServices.FusedLocationApi.requestLocationUpdates
的位置变化
参考doc。根据在前台活动中监听位置更改的文档,您应该传递LocationListener,或者如果您想要监听背景中的更改,则应使用PendingIntent。
在您的情况下,您传递的活动参考不会扩展任何两个必需的类
根据您的要求创建一个新类来实现LocationListener或Pending intent,然后将其作为方法调用中的最后一个参数传递。