我环顾四周但却无法找到解决方案。我试图在Android中找到最后一个已知位置,我已经从谷歌开发者那里看到了这个,但函数onConnected()
从未被调用过。另外,如果我将其放在onCreate()
中,则Android的地理定位图标永远不会打开。
该应用使用已使用FusedLocation的权限和Google服务。
//class implements ConnectionCallbacks, OnConnectionFailedListener
protected void onCreate(Bundle savedInstanceState) {
[...]
buildGoogleApiClient();
}
@Override
protected void onStart() {
super.onStart();
mGoogleApiClient.connect();
}
protected synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
@Override
public void onConnected(Bundle connectionHint) {
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
if (mLastLocation != null) {
String lat = String.valueOf(mLastLocation.getLatitude()); //it's only for test
String lng = String.valueOf(mLastLocation.getLongitude());
}
}
编辑:没关系,离开功能一天后工作正常。代码是一样的。我要删除这个问题吗?
答案 0 :(得分:0)
您应该使用FusedLocationProvide api,它在您构建时提供更准确的位置更新。下面是代码 -
build.gradle
它一定会有用。让我们尝试一下。