鸿蒙手表后台持续定位不成功

1、已经申请了权限

2、开启持续定位

3、已经创建了serviceAbility

现在问题时候退出后台或者息屏,需要等3~5分钟才能有定位回调,然后回调个两三次,就没了,有哪位大神指导是什么问题,指点一下

{
  "name": "ohos.permission.ACCESS_FINE_LOCATION"},{
  "name": "com.huawei.agconnect.core.DataAbilityShellProvider.PROVIDER"},{
  "name": "ohos.permission.APPROXIMATELY_LOCATION"}

if (verifySelfPermission("ohos.permission.LOCATION") == IBundleManager.PERMISSION_GRANTED) {
    LocationUtil.    getInstance().startLocation(this);} else {
    // 请求位置权限    requestPermissionsFromUser(new String[]{"ohos.permission.LOCATION"}, locationRequestCode);}

if (verifySelfPermission("ohos.permission.LOCATION_IN_BACKGROUND") == IBundleManager.PERMISSION_GRANTED) {
} else {
    // 请求位置权限    requestPermissionsFromUser(new String[]{"ohos.permission.LOCATION_IN_BACKGROUND"}, location2RequestCode);}
if (verifySelfPermission("ohos.permission.APPROXIMATELY_LOCATION") == IBundleManager.PERMISSION_GRANTED) {
} else {
    // 请求位置权限    requestPermissionsFromUser(new String[]{"ohos.permission.APPROXIMATELY_LOCATION"}, location2RequestCode);}

//todo 实例化locator对象            locator = new Locator(currentContext != null  ? currentContext :context);            locator.requestEnableLocation();            //todo  构造requestParam参数            RequestParam requestParam = new RequestParam(RequestParam.PRIORITY_FAST_FIRST_FIX, 0, 0);
            LocationUtil.MyLocatorCallback locatorCallback = new LocationUtil.MyLocatorCallback();            //todo 实例化geoConvert            geoConvert = new GeoConvert();
            //为开启定位服务方法            locator.startLocating(requestParam, locatorCallback);            try {
                ESSensorManager sensorManager = ESSensorManager.    getSensorManager(context);                int subscriptionId = sensorManager.subscribeToSensorData(SensorUtils.SENSOR_TYPE_PRESSURE, new SensorDataListener() {
                    @Override                    public void onDataSensed(SensorData sensorData) {
                        if(sensorData instanceof PressureData){
                            PressureData pressureData = (PressureData) sensorData;                            float value = pressureData.getValue();                            currentPressureData = value;//                        HiLog.error(LABEL, "获取到的空气压力为:"+value+"hPa");                        }
                    }
                    @Override                    public void onCrossingLowBatteryThreshold(boolean b) {

                    }
                });
            } catch (ESException e) {
                e.printStackTrace();            }

/** * 定位回调 */public class MyLocatorCallback implements LocatorCallback {
    /**     * 定位成功的回调,用于开发者获取具体地理的经纬度详细信息     *     * @param location 定位成功返回的对象     */    @Override    public void onLocationReport(Location location) {

        HiLog.    error(LABEL, "定位成功后回调");
    }

    /**     * 定位的时候,定位服务状态发生改变的时候,触发这个函数     *     * @param type 服务状态码,有如下几个状态     *             Locator.SESSION_START  表示定位请求已被系统接受。     *             Locator.SESSION_STOP     指示位置请求已完成。     */    @Override    public void onStatusChanged(int type) {
        switch (type) {
            case 1:
                // 定位开始                HiLog.    error(LABEL, "定位开始");                break;            case 2:
                // 定位服务可用                HiLog.    error(LABEL, "定位服务可用");                break;            case 3:
                // 定位服务挂起                HiLog.    error(LABEL, "定位服务挂起");                break;            case 4:
                // 定位停止                HiLog.    error(LABEL, "定位停止");                break;            case 5:
                // 定位服务不可用                HiLog.    error(LABEL, "定位服务不可用");                break;            default:
                HiLog.    error(LABEL, "未知状态: " + type);                break;        }
    }

    /**     * 定位失败触发此函数     *     * @param type 定位失败错误码,具体状态如下     *             1.  Locator.ERROR_PERMISSION_NOT_GRANTED: 应用程序调用定位器接口时,尚未授予定位权限     *             2.Locator.ERROR_SWITCH_UNOPEN :应用程序调用定位器接口时,位置服务已禁用(GPS 功能未打开)     */    @Override    public void onErrorReport(int type) {
        HiLog.    error(LABEL, "定位失败");    }
}
鸿蒙手表
智能手表
鸿蒙java
鸿蒙软件
2024-12-01 12:00:39
浏览
收藏 0
回答 0
待解决
相关问题
HarmonyOS uris 使用不成功
422浏览 • 1回复 待解决
ohpm unpublish 对于带group的不成功
779浏览 • 1回复 待解决
startAbility跳转不成功,错误码16000001
2052浏览 • 1回复 待解决
HarmonyOS 接口调用不成功
41浏览 • 1回复 待解决
HarmonyOS skills 功能使用不成功
371浏览 • 1回复 待解决
HarmonyOS ffmpeg静态库引用不成功
364浏览 • 1回复 待解决
配置OHPM代理一直不成功
574浏览 • 1回复 待解决
数据库插入数据不成功怎么回事?
2467浏览 • 1回复 待解决
如何让应用后台持续运行
17112浏览 • 2回复 待解决
定位是否必须联网才能成功
1787浏览 • 1回复 待解决
如何应用持续集成方案。
707浏览 • 1回复 待解决
鸿蒙能给手表发通知吗?
2浏览 • 0回复 待解决
鸿蒙手表支持服务卡片吗
8504浏览 • 2回复 待解决