我试图获得最准确的位置。
到目前为止,我已成功使用GoogleCloc中的LocationClient: http://developer.android.com/training/location/retrieve-current.html
但是现在我发现这个课程已经老了: http://developer.android.com/reference/com/google/android/gms/location/package-summary.html
"不推荐使用此类。使用LocationServices"。
但是在LocationServices的例子中,即使在这个站点中: Android LocationClient class is deprecated but used in documentation
似乎我们应该使用导入:com.google.android.gms.location.LocationServices 但是我无法导入这个课程。
任何想法?
编辑:
我在此页面中找到: h2ttps://github.com/M66B/XPrivacy/issues/1774
看似相似的问题,有人猜测: "似乎是Play服务5.0的一部分。"答案 0 :(得分:42)
确保您的gradle依赖项中包含以下项目:
dependencies {
compile 'com.google.android.gms:play-services-location:7.+'
}
答案 1 :(得分:19)
请不要使用compile 'com.google.android.gms:play-services:9.0.1'
在6.5之前的Google Play服务版本中,您必须将整个API包编译到您的应用中。在某些情况下,这样做会使您的应用程序中的方法数量(包括框架API,库方法和您自己的代码)更难以保持65,536的限制。
从版本6.5开始,您可以选择性地将Google Play服务API编译到您的应用中。例如,在您的情况下,您只需要这个。
compile 'com.google.android.gms:play-services-maps:9.0.1'
compile 'com.google.android.gms:play-services-location:9.0.1'
要使用融合api获取最后一个位置,您必须拥有compile 'com.google.android.gms:play-services-location:9.0.1'
。
希望有所帮助
答案 2 :(得分:3)
以下可能有帮助,
它应该导入项目中的相应包。
答案 3 :(得分:2)
我遇到了同样的问题,并通过在Android SDK管理器中将Google Play服务从17更新为最新(目前为22个)来解决,如评论中所述。
在Eclipse中执行此操作:
答案 4 :(得分:2)
不推荐使用LocationClient。您必须使用GoogleApiclient
,如下所示:
1:声明GoogleApiClient变量
private GoogleApiClient mGoogleApiClient;
2:实例化
mGoogleApiClient = new GoogleApiClient.Builder(mThisActivity)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
3:实施回调
public class YourClass extends BaseFragment implements
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener, LocationListener {
@Override
public void onConnectionFailed(ConnectionResult result) {
// your code goes here
}
@Override
public void onConnected(Bundle connectionHint) {
//your code goes here
}
@Override
public void onConnectionSuspended(int cause) {
//your code goes here
}
}
4:开始获取位置更新:
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
5:删除位置更新:
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
6:获取最后一个位置:
private Location mCurrentLocation;
mCurrentLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
答案 5 :(得分:0)
如果您正在使用eclipse,请执行以下步骤: -
答案 6 :(得分:0)
给出here给出的类似问题:3>:
在Android Studio中:
右键点击您的项目" app"文件夹并单击 - >模块设置
点击"依赖关系"标签
点击+号添加新的依赖项并选择" Library Dependency" 寻找您需要的库并添加它
答案 7 :(得分:0)
截至2019年或更高版本,最佳答案已经过时,将无法正常工作。
相反,添加:
implementation 'com.google.android.gms:play-services-location:17.0.0'
到dependencies
中的build.gradle
。