- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 GoogleAPIClient
获取实时位置更新。虽然 GoogleAPIClient
已连接但位置对象为空,并且它提示 location.getProvider()
为空。有人可以帮忙吗?
这是我的代码:
public void onConnected(Bundle connectionHint) {
Log.i(TAG, "Connected to GoogleApiClient " + myGoogleApiClient.isConnected());
myCurrentLocation = LocationServices.FusedLocationApi.getLastLocation(myGoogleApiClient);
// Debug - At this point myCurrentLocation is NULL
if (myCurrentLocation == null) {
Log.i(TAG, "myCurrentLocation is : " + myCurrentLocation);
// Debug - myCurrentLocation is STILL NULL
LocationServices.FusedLocationApi.requestLocationUpdates(
myGoogleApiClient, myLocationRequest, this);
// Debug - app crashes with stack trace below at this point
Log.i(TAG, "Doesnt't reach here : " + myCurrentLocation);
}
myLastUpdateTime = DateFormat.getTimeInstance().format(new Date());
updateUILayout();
}
protected synchronized void buildGoogleApiClient() {
Log.i(TAG, "Building GoogleApiClient");
myGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
Log.i(TAG, "myGoogleApiClient is :" + myGoogleApiClient.isConnected());
createLocationRequest();
}
protected void createLocationRequest() {
myLocationRequest = new LocationRequest();
myLocationRequest.setInterval(10000);
myLocationRequest.setFastestInterval(5000);
myLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
调试后我发现的主要问题是:
LocationServices.FusedLocationApi.requestLocationUpdates(
myGoogleApiClient, myLocationRequest, this);
这不是设置 myCurrentLocation。它始终为 NULL。在 ADB logcat 中说:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.location.Location.getProvider()' on a null object reference
at com.adrenalin.myfirstapp.MyActivity.onConnected(MyActivity.java:130)
at com.google.android.gms.internal.jm.f(Unknown Source)
at com.google.android.gms.common.api.c.gJ(Unknown Source)
at com.google.android.gms.common.api.c.d(Unknown Source)
at com.google.android.gms.common.api.c$2.onConnected(Unknown Source)
at com.google.android.gms.internal.jm.f(Unknown Source)
at com.google.android.gms.internal.jm.dU(Unknown Source)
at com.google.android.gms.internal.jl$h.b(Unknown Source)
最佳答案
当你实现
LocationServices.FusedLocationApi.requestLocationUpdates(
myGoogleApiClient, myLocationRequest, this);
您需要覆盖 onLocationChanged
的回调,以便它知道在更新时如何处理位置。
试试这个:
@Override
public void onLocationChanged(Location location) {
myCurrentLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
}
关于java - LocationServices.FusedLocationApi.requestLocationUpdates 未设置位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28648690/
从谷歌商店下载并使用“Fake Gps”后,我想创建一个用于教育目的。 我正在使用 GoogleApiClient FusedLocationAPI 获取我的当前位置并创建模拟位置。我能够获取我当前的
我正在尝试在后台服务中使用 FusedLocation API。我在 :- 上遇到错误 LocationServices.FusedLocationApi.requestLocationUpdates
我制作了一个谷歌地图应用程序,但当我接受权限时它会关闭。除了 onConnected 方法之外,所有代码都可以。 这里是: @Override public void onConnected(
我正在编写一个简单的 Android 应用程序来捕获用户的位置。 我正在使用 FusedLocationAPI 来提供位置。 mLocationRequest = LocationRequest.
这个问题是关于我正在开发的 Android 应用程序。我正在使用 Android 版本 7 的真实手机上进行测试。 我希望 FusedLocationApi 每 15 分钟请求一次 GPS 位置。 当
你好,我正在尝试停止位置更新,我使用了这段代码:- LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,
实际上,我正在使用 FusedLocationApi 来获取用户当前位置,然后我将在 map 上添加标记并且它工作正常..现在我在 MapFragment 上添加一个 EditText,editTex
我想在 GPS/Wifi 关闭时使用 google play services LocationServices.FusedLocationApi.getLastLocation(mGoogleApi
我有一个获取位置的 Android 应用: private LocationRequest createLocationRequest() { LocationRequest mLocatio
我想在我的 Android 项目中简单地检索设备位置,为此我使用播放服务方法: protected synchronized void buildGoogleApiClient() {
我正在编写一个 Android 应用程序,并且有一个与 FusedLocationApi.requestLocationUpdates() 相关的奇怪行为,我对此进行了搜索,并且其他相关问题都没有解决
我在 android 中使用谷歌的 fusedlocationapi 来获取用户当前的纬度和经度,现在根据我的用例,我只想在用户单击按钮时获取用户的当前位置,现在我认为而不是请求位置更新我可以在一段时
常规的 Android(非融合)LocationListener https://developer.android.com/reference/android/location/LocationLi
我需要将异步 FusedLocationApi.getLastLocation 调用转换为同步调用。我不是 Java 的大专家,我不确定我做对了。 我想连接到 GoogleApiClient,然后阻止
我没有使用 LocationManager,而是使用 LocationServices 方法来获取当前的 gps 位置和位置更新。 这是代码: public void onConnected(@Nul
我有定位服务的单例 public class LocationService implements GoogleApiClient.ConnectionCallbacks, Googl
我正在尝试使用 GoogleAPIClient 获取实时位置更新。虽然 GoogleAPIClient 已连接但位置对象为空,并且它提示 location.getProvider() 为空。有人可以帮
SO 上还有一些关于同一问题的其他问题,但我想答案有点陈旧,可能不适用于我的情况。在下面的代码中,永远不会调用方法 onLocationChanged。我还尝试从 android 模拟器发送新位置,但
我正在尝试使用 FusedLocationApi.getLastLocation 获取位置,并且我在 list 文件中获得了位置权限: 但是,当我从系统请求位置时,我得到 null。我只是在测试关
我不明白为什么 LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mLocationRequest,
我是一名优秀的程序员,十分优秀!