Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-api
提交
d4378877
U
uni-api
项目概览
DCloud
/
uni-api
通知
670
Star
23
Fork
12
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-api
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d4378877
编写于
3月 05, 2024
作者:
杜庆泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
移除无用的引入
上级
1a42f0e3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
15 deletion
+15
-15
uni_modules/uni-getLocation-system/utssdk/app-android/index.uts
...dules/uni-getLocation-system/utssdk/app-android/index.uts
+15
-15
未找到文件。
uni_modules/uni-getLocation-system/utssdk/app-android/index.uts
浏览文件 @
d4378877
import { GetLocation, GetLocationOptions, GetLocationSuccess
,GetLocationFail
} from "../interface.uts"
import { GetLocation, GetLocationOptions, GetLocationSuccess } from "../interface.uts"
import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import UTSAndroid from 'io.dcloud.uts.UTSAndroid';
import Context from 'android.content.Context';
import Context from 'android.content.Context';
import LocationManager from 'android.location.LocationManager';
import LocationManager from 'android.location.LocationManager';
...
@@ -12,7 +12,7 @@ import LocationListener from 'android.location.LocationListener';
...
@@ -12,7 +12,7 @@ import LocationListener from 'android.location.LocationListener';
* 对外的函数接口
* 对外的函数接口
*/
*/
export const getLocation : GetLocation = function (options : GetLocationOptions) {
export const getLocation : GetLocation = function (options : GetLocationOptions) {
/**
/**
* 准备权限
* 准备权限
*/
*/
...
@@ -57,7 +57,7 @@ class CustomSystemLocationListener extends LocationListener {
...
@@ -57,7 +57,7 @@ class CustomSystemLocationListener extends LocationListener {
* 真实的执行位置定位
* 真实的执行位置定位
*/
*/
function getLocationImpl(options : GetLocationOptions) {
function getLocationImpl(options : GetLocationOptions) {
/**
/**
* add since 2023-09-14 增加默认值兼容逻辑
* add since 2023-09-14 增加默认值兼容逻辑
*/
*/
...
@@ -67,8 +67,8 @@ function getLocationImpl(options : GetLocationOptions) {
...
@@ -67,8 +67,8 @@ function getLocationImpl(options : GetLocationOptions) {
if(options.highAccuracyExpireTime == null){
if(options.highAccuracyExpireTime == null){
options.highAccuracyExpireTime = 3000
options.highAccuracyExpireTime = 3000
}
}
if(options.type != 'wgs84'){
if(options.type != 'wgs84'){
// 系统定位只支持wgs84,如果不是则报错
// 系统定位只支持wgs84,如果不是则报错
let err = new UniError("uni-getLocation-system",-1,"system location support wgs84 only.");
let err = new UniError("uni-getLocation-system",-1,"system location support wgs84 only.");
...
@@ -76,7 +76,7 @@ function getLocationImpl(options : GetLocationOptions) {
...
@@ -76,7 +76,7 @@ function getLocationImpl(options : GetLocationOptions) {
options.complete?.(err)
options.complete?.(err)
return
return
}
}
if(options.geocode != null && options.geocode == true){
if(options.geocode != null && options.geocode == true){
// 系统定位不支持逆地理编码
// 系统定位不支持逆地理编码
let err = new UniError("uni-getLocation-system",-2,"system location not support geocode.");
let err = new UniError("uni-getLocation-system",-2,"system location not support geocode.");
...
@@ -84,12 +84,12 @@ function getLocationImpl(options : GetLocationOptions) {
...
@@ -84,12 +84,12 @@ function getLocationImpl(options : GetLocationOptions) {
options.complete?.(err)
options.complete?.(err)
return
return
}
}
let locationManager = UTSAndroid.getAppContext()!.getSystemService(Context.LOCATION_SERVICE) as LocationManager;
let locationManager = UTSAndroid.getAppContext()!.getSystemService(Context.LOCATION_SERVICE) as LocationManager;
let criteria = new Criteria()
let criteria = new Criteria()
// 用户明确开启了高度
// 用户明确开启了高度
if (options.altitude != null && options.altitude == true) {
if (options.altitude != null && options.altitude == true) {
criteria.setAltitudeRequired(true)
criteria.setAltitudeRequired(true)
...
@@ -100,10 +100,10 @@ function getLocationImpl(options : GetLocationOptions) {
...
@@ -100,10 +100,10 @@ function getLocationImpl(options : GetLocationOptions) {
} else{
} else{
criteria.setAccuracy(Criteria.ACCURACY_COARSE)
criteria.setAccuracy(Criteria.ACCURACY_COARSE)
}
}
criteria.setPowerRequirement(Criteria.POWER_LOW)
criteria.setPowerRequirement(Criteria.POWER_LOW)
criteria.setSpeedRequired(true)
criteria.setSpeedRequired(true)
/**
/**
* 如果存在gps,那么优先gps,这样才有高度信息
* 如果存在gps,那么优先gps,这样才有高度信息
*/
*/
...
@@ -111,7 +111,7 @@ function getLocationImpl(options : GetLocationOptions) {
...
@@ -111,7 +111,7 @@ function getLocationImpl(options : GetLocationOptions) {
if(!locationManager.getProviders(criteria, true).contains("gps")){
if(!locationManager.getProviders(criteria, true).contains("gps")){
providerName = locationManager.getBestProvider(criteria, true)
providerName = locationManager.getBestProvider(criteria, true)
}
}
if (providerName == null) {
if (providerName == null) {
// 没有找到合法的系统定位能力提供者,错误的逻辑 todo
// 没有找到合法的系统定位能力提供者,错误的逻辑 todo
let err = new UniError("uni-getLocation-system",-3,"Provider is not find,Please ensure that the device location function is turned on");
let err = new UniError("uni-getLocation-system",-3,"Provider is not find,Please ensure that the device location function is turned on");
...
@@ -134,17 +134,17 @@ function getLocationImpl(options : GetLocationOptions) {
...
@@ -134,17 +134,17 @@ function getLocationImpl(options : GetLocationOptions) {
if(options.highAccuracyExpireTime != null && options.highAccuracyExpireTime! >= 3000){
if(options.highAccuracyExpireTime != null && options.highAccuracyExpireTime! >= 3000){
timeoutMill = options.highAccuracyExpireTime!
timeoutMill = options.highAccuracyExpireTime!
}
}
let taskId = 0
let taskId = 0
let startTimeMill = (new Date()).getTime()
let startTimeMill = (new Date()).getTime()
// 不管返回结果如何,延迟2s 返回数据
// 不管返回结果如何,延迟2s 返回数据
taskId = setInterval(function () {
taskId = setInterval(function () {
if (Global.lastLocation == null) {
if (Global.lastLocation == null) {
// 没有得到想要的位置,统计错误计数+1
// 没有得到想要的位置,统计错误计数+1
let currentTimeMill = (new Date()).getTime()
let currentTimeMill = (new Date()).getTime()
let diffTimeNum = currentTimeMill - startTimeMill
let diffTimeNum = currentTimeMill - startTimeMill
if (diffTimeNum > timeoutMill) {
if (diffTimeNum > timeoutMill) {
locationManager.removeUpdates(systemListener)
locationManager.removeUpdates(systemListener)
// 超过6s了,返回错误
// 超过6s了,返回错误
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录