- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试使用 FusedLocationApi.getLastLocation
获取位置,并且我在 list 文件中获得了位置权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
但是,当我从系统请求位置时,我得到 null
。我只是在测试关闭和打开位置服务,所以它可能与此有关(当然,当我尝试这个时它是打开的)。但即使在返回 null 之后,我也在等待调用 onLocationChanged
并且它永远不会被调用。我在这里也看到了类似的问题:FusedLocationApi.getLastLocation always null
这是我的代码:
protected LocationRequest createLocationRequest() {
LocationRequest mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(120000);
mLocationRequest.setFastestInterval(30000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
return mLocationRequest;
}
protected GoogleApiClient getLocationApiClient(){
return new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
LocationRequest locationRequest = createLocationRequest();
@Override
public void onLocationChanged(Location location) {
App.setLocation(location); // NEVER CALLED
}
@Override
public void onConnected(Bundle bundle) {
App.setLocation(LocationServices.FusedLocationApi.getLastLocation(locationApiClient)); //RETURNS NULL
LocationRequest locationRequest = createLocationRequest();
LocationServices.FusedLocationApi.requestLocationUpdates(locationApiClient, locationRequest, this);
}
在我的应用程序的 onCreate
上:
locationApiClient = getLocationApiClient();
locationApiClient.connect();
this
是我的应用程序对象。为什么我会得到空值(是的,我确实知道在文档中所述的某些极少数情况下它可能是空值,但我总是得到这个,不是很少)和 此后仍未获得位置更新?如果有帮助,它是一个没有 SIM 卡的真实设备(三星 Galaxy S3)。
最佳答案
如果至少有一个客户端连接到融合位置提供程序,它将只维护后台位置。现在仅打开位置服务并不能保证存储最后一个已知位置。
一旦第一个客户端连接,它将立即尝试获取位置。如果您的 Activity 是第一个连接的客户端,并且在 onConnected() 中立即调用 getLastLocation(),则可能没有足够的时间让第一个位置到达..
然后你设置 mLocationRequest.setFastestInterval(30000);
这基本上意味着 30 秒。所以至少 30 秒后,通常根据您的设置,首选时间是 120 秒,如果根本没有存储的最后一个已知位置,这不是很长的时间吗?加上你正在设置电池平衡优先级,这会让你等待更长的时间。
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
我建议您先启动 map 应用程序,以便至少有一些确认的位置,然后测试您的应用程序。
关于android - 为什么 FusedLocationApi.getLastLocation 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29796436/
For my specific use case, I need to fetch the device's real-time location updates and pass them t
我目前正在为自己制作一个 Android 应用程序,出于乐趣,并希望获取当前位置。 也许我会在 Play 商店上发布此内容。 我正在阅读获取当前位置的最便捷方法,但由于注释 here ,我决定走谷歌的
我开发了一个应用程序来获取当前位置,但是我没有得到任何位置信息,我也尝试了 GoogleService failed to initialize 中的解决方案但它对我不起作用。 这是我的主要 Acti
从 LocationManager 调用 requestLocationUpdates 是否会更新 getLastLocation 返回的位置? 即,我可以这样做吗: 调用 getLastLocati
我想设置一个按钮,当我按下按钮时,然后获取位置。 FusedLocationProviderClient userLocationProviderClient = LocationServices.g
我正在使用 google play services location api。我希望能够一次获取用户的当前位置,而不是监听更新。我目前正在使用 getLastLocation 来获取用户最后已知的位
我正在使用 google play services api 在我的应用程序中获取位置更新。但是,出于某种原因,当客户端连接时,client.getLastLocation() 不会更改其值。只有通过
我通过单击按钮在我的应用程序中获取与 FusedLocationProviderClient 的坐标以存储到数据库中。问题是,当我重新启动手机或模拟器时,.getLastLocation() 为 nu
我需要知道从此方法返回的 Location 对象的更新频率以及它是基于时间、距离还是其他? 最佳答案 根据getLastLocation()文档它返回已知位置。 我认为它存储 LocationClie
自融合位置提供程序发布以来,我一直在使用它,我对它非常满意(比旧系统好得多)。但是当结合使用地理围栏和 LocationClient.lastKnownLocation() 时,我遇到了一个特殊问题。
我只需要清楚这一点,getLastLocation()方法会给我最后一个已知位置和 requestLocationUpdates每一段时间都会给我当前位置。 现在,我正在开发一个简单的应用程序来跟踪汽
我想在我的 Android 项目中简单地检索设备位置,为此我使用播放服务方法: protected synchronized void buildGoogleApiClient() {
问题 我不明白为什么现在 getLastLocation() 返回 null。我刚刚移动了代码 fragment 以获取检查权限代码 fragment 下的最后一个已知位置,现在每次我运行应用程序时,
我需要将异步 FusedLocationApi.getLastLocation 调用转换为同步调用。我不是 Java 的大专家,我不确定我做对了。 我想连接到 GoogleApiClient,然后阻止
我有定位服务的单例 public class LocationService implements GoogleApiClient.ConnectionCallbacks, Googl
我正在尝试通过 LocationClient 接收我的当前位置,但由于某种原因它返回 null。我不想使用 GPS,因此我在我的 list 中伪造了精确的位置访问权限。 list : --> 主要
我有一个应用程序可以获取用户的当前位置,然后加载 Google map 并绘制他们所在区域的兴趣标记。它适用于 Marshmallow 以下的所有内容。我已经添加了运行时权限检查,并且在收到提示时正在
我是 Android 编程的新手,想从创建一个非常基本的应用开始,在屏幕上显示当前位置的纬度和经度。 我正在为我的 Samsung Galaxy S3 开发并阅读您需要 kickstart the p
我是 Android 世界的新手。我只是引用了谷歌的这个教程: http://developer.android.com/training/location/retrieve-current.html
我试图在 3 天内解决这个问题。我失去了调试的视线,看不到我的错误。我正在尝试构建一个请求当前位置的应用程序。 我的 getLastLocation 返回 null,有人能指出我哪里做错了吗? 这是我
我是一名优秀的程序员,十分优秀!