d***@whaiw.com
d***@whaiw.com
  • 发布:2021-12-29 18:14
  • 更新:2021-12-29 20:19
  • 阅读:964

【报Bug】3.3.4 获取定位失败返回getLocation:fail No location providers available

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows 10

HBuilderX类型: 正式

HBuilderX版本号: 3.3.4

手机系统: Android

手机系统版本号: Android 11

手机厂商: 三星

手机机型: Galaxy S20 5G

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

doGetLocation() {
console.log('获取定位')
uni.getLocation({
success: (res) => {
this.hasLocation = true;
this.location = formatLocation(res.longitude, res.latitude);
},
fail: (err) => {
console.log(err)
console.log('结束定位')
// #ifdef MP-BAIDU
if (err.errCode === 202 || err.errCode === 10003) { // 202模拟器 10003真机 user deny
this.showConfirm();
}
// #endif
// #ifndef MP-BAIDU
if (err.errMsg.indexOf("auth deny") >= 0) {
uni.showToast({
title: "访问位置被拒绝"
})
} else {
uni.showToast({
title: err.errMsg
})
}
// #endif
},
complete() {
console.log('结束定位')
}
})
console.log('123123123')
}

操作步骤:

下载官方app demo项目实例,运行到三星s20,点击获取位置

预期结果:

获取到定位

实际结果:

获取定位速度很慢,时好时坏,失败了就会返回下面的信息
{
"errMsg": "getLocation:fail No location providers available.",
"errCode": 2,
"code": 2
}

bug描述:

2021-12-29 18:14 负责人:DCloud_Android_ST 分享
已邀请:
d***@whaiw.com

d***@whaiw.com (作者)

用Android Studio 模拟器 模拟 Android 11系统 也会出现一样的问题,获取定位特别慢,偶尔成功偶尔失败

d***@whaiw.com

d***@whaiw.com (作者)

用Android Studio模拟器模拟Android10 就没有这个问题

DCloud_UNI_GSQ

DCloud_UNI_GSQ

默认上 wgs84 类型,定位慢的问题将会排查。

你看下这里 https://ask.dcloud.net.cn/article/39552 也确认一下自己是否需要 wgs84 类型。

  • d***@whaiw.com (作者)

    就是需要wgs84的 因为app不是做内陆的。。 之前用wgs84在android 11上没啥问题

    2021-12-30 08:57

  • DCloud_UNI_GSQ

    回复 d***@whaiw.com: 好的

    2021-12-30 11:30

DCloud_Android_ST

DCloud_Android_ST

默认坐标系使用 wgs84,会调用系统定位。目前你的描述是定位失败了.
关于返回错误信息是“No location providers available.”是错误描述有问题后期会修改。目前系统定位的体验取决于系统内部定位模块的机制。不同系统表现不太一致。我们也会不断地去优化系统定位逻辑。如想获取到更优的体验建议更改坐标类型,使用三方定位SDK。

  • d***@whaiw.com (作者)

    系统的话,就是很普通的android11呀,用的是android studio装的模拟器模拟的,没有国内各种厂商的那些,因为不是内陆的,所以都没有用国内地图厂商提供的sdk,一直用的wgs84系统定位

    2021-12-30 10:23

  • DCloud_Android_ST

    回复 d***@whaiw.com: 好的 模拟器cpu类型用的arm 还是x86

    2021-12-30 11:03

  • d***@whaiw.com (作者)

    回复 DCloud_Android_ST: x86

    2021-12-30 11:48

该问题目前已经被锁定, 无法添加新回复