首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

getLastKnownLocation在更高版本的Android (6及以上)中不起作用

getLastKnownLocation在更高版本的Android (6及以上)中不起作用是因为在Android 6及以上的版本中,Google对定位权限进行了更严格的限制。getLastKnownLocation方法是用来获取设备上一次已知的位置信息,但在新的权限模型下,应用程序需要获取定位权限并且用户必须授予该权限才能使用该方法。

在Android 6及以上的版本中,应用程序需要通过运行时权限的方式来获取定位权限。运行时权限是一种动态权限控制机制,它允许应用程序在运行时向用户请求权限。因此,如果应用程序没有获取定位权限,getLastKnownLocation方法将无法返回有效的位置信息。

为了解决这个问题,开发人员应该使用新的定位API,如Google Play服务中的Fused Location Provider API。Fused Location Provider API提供了更精确和可靠的位置信息,并且可以与运行时权限机制无缝集成。

使用Fused Location Provider API获取设备的最新位置信息的步骤如下:

  1. 在AndroidManifest.xml文件中添加定位权限的声明:
代码语言:txt
复制
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  1. 在应用程序代码中,使用GoogleApiClient建立与Google Play服务的连接,并请求定位权限:
代码语言:txt
复制
GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
        .addApi(LocationServices.API)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();

mGoogleApiClient.connect();

// 请求定位权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
        != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
            PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);
}
  1. 在onConnected回调方法中,使用FusedLocationApi获取设备的最新位置信息:
代码语言:txt
复制
@Override
public void onConnected(Bundle connectionHint) {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
            == PackageManager.PERMISSION_GRANTED) {
        Location lastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
        if (lastLocation != null) {
            // 处理位置信息
        }
    }
}

通过使用Fused Location Provider API,开发人员可以在Android 6及以上的版本中获取到设备的最新位置信息,并且与运行时权限机制无缝集成。这样可以确保应用程序在不同版本的Android设备上都能正常工作。

腾讯云相关产品推荐:腾讯位置服务(https://cloud.tencent.com/product/lbs)是腾讯云提供的一项定位服务,可以帮助开发人员获取设备的位置信息,并提供了丰富的地理位置相关功能和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

50分33秒

腾讯位置服务-Android定位SDK详细教程

55秒

PS小白教程:如何在Photoshop中制作浮在水面上的文字效果?

1分6秒

PS使用教程:如何在Mac版Photoshop中制作“3D”立体文字?

1分26秒

PS小白教程:如何在Photoshop中完美合并两张图片?

10分19秒

陶瓷、金属、蝶形管壳封装IC高性能、可靠性测试解决方案

1分10秒

PS小白教程:如何在Photoshop中制作透明玻璃效果?

-

亲测!微信电脑端可以刷朋友圈了,网友:上班能光明正大摸鱼了

29分12秒

【方法论】持续部署&应用管理实践

3分6秒

如何在Mac版Photoshop中去除图片中的水印?

2分4秒

PS小白教程:如何在Photoshop中制作出水瓶上的水珠效果?

22秒

PS使用教程:如何在Mac版Photoshop中新建A4纸?

1时5分

云拨测多方位主动式业务监控实战

领券