g***@163.com
g***@163.com
  • 发布:2026-04-13 18:17
  • 更新:2026-04-13 18:17
  • 阅读:16

安卓上uni.getLocation和uni.startLocationUpdate使用异常

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: Apple M4 macOS 26.3.1

HBuilderX类型: Alpha

HBuilderX版本号: 5.04

手机系统: Android

手机系统版本号: Android 16

手机厂商: 华为

手机机型: 三星 Galaxy S25

页面类型: nvue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
    uni.getLocation({  
        type: 'wgs84',  
        success: (res : GetLocationSuccess) => {  
            locationLastPoint.value = `单次定位成功:${res.latitude}, ${res.longitude}`;  
            appendLocationDebugLog(locationLastPoint.value);  
        },  
        fail: (err) => {  
            locationLastError.value = `单次定位失败:${JSON.stringify(err)}`;  
            appendLocationDebugLog(locationLastError.value);  
        }  
    } as GetLocationOptions);  

    uni.startLocationUpdate({  
        type: 'wgs84',  
        success: (_res) => {  
            appendLocationDebugLog('startLocationUpdate 调用成功,等待 onLocationChange 回调');  
        },  
        fail: (err) => {  
            locationLastError.value = `开启持续定位失败:${JSON.stringify(err)}`;  
            appendLocationDebugLog(locationLastError.value);  
        }  
    } as StartLocationUpdateOptions);

操作步骤:

安卓设备室内调用uni.getLocation和uni.startLocationUpdate

预期结果:

安卓上uni.getLocation和uni.startLocationUpdate都正常使用

实际结果:

安卓上uni.getLocation和uni.startLocationUpdate都异常

bug描述:

    uni.getLocation({  
        type: 'wgs84',  
        success: (res : GetLocationSuccess) => {  
            locationLastPoint.value = `单次定位成功:${res.latitude}, ${res.longitude}`;  
            appendLocationDebugLog(locationLastPoint.value);  
        },  
        fail: (err) => {  
            locationLastError.value = `单次定位失败:${JSON.stringify(err)}`;  
            appendLocationDebugLog(locationLastError.value);  
        }  
    } as GetLocationOptions);  

在室内使用单次定位都会超时,错误如图所示:errCode:1505600, errMsq: location fail: timeout,定位权限是确定有授权且打开的,拿到室外后定位就正常了。
uni.startLocationUpdate({
type: 'wgs84',
success: (_res) => {
appendLocationDebugLog('startLocationUpdate 调用成功,等待 onLocationChange 回调');
},
fail: (err) => {
locationLastError.value = 开启持续定位失败:${JSON.stringify(err)};
appendLocationDebugLog(locationLastError.value);
}
} as StartLocationUpdateOptions);
但是持续定位一直都是没效果,没有任何回调。

如上同一套代码,在iOS上运行没有任何问题,不管是单次定位还是持续定位都是正常的。但是安卓上,我换了3台设备,小米14pro、vivo x100、三星 Galaxy S25 都是如上所述一样的效果

2026-04-13 18:17 负责人:无 分享
已邀请:

要回复问题请先登录注册