文档首页/ ISDP/ 用户指南/ 开发中心/ 用户指南/ 开发/ 端侧设备/ 接口文档方法详解及功能概述
更新时间:2023-09-11 GMT+08:00
分享

接口文档方法详解及功能概述

综述

下述所有方法涉及依赖均基于ISDP+公共能力依赖库提供引用依赖。

公共内容介绍

errorCode码

类型

名称

数值

含义

int

UNKNOWN

-1

未知类型错误

int

DISCARDED

1001

操作被取消

int

INNER

1002

内部错误

int

NOT_SUPPORTED

1003

不支持的操作,接口未实现或当前版本不支持

int

ILLEGAL_PARAMETER

1004

错误参数,表示参数本身错误

int

NO_FOUND

1005

请求的资源未发现或不存在

int

NO_PERMISSION

1006

没有权限操作

int

INSUFFICIENT_RESOURCE

1007

资源耗尽,可能是系统资源或当前用户的资源不足

int

DATA_MISSING

1008

不可恢复的数据损坏或丢失

int

INSUFFICIENT_SPACE

1009

磁盘空间不足

errorCode详细定义

com.huawei.isdpplus.agency.CommonConstant.java文件

方法通用出参介绍

初始化自定义功能

方法名

initCustomizedFunctions

功能描述

初始化厂商自定义的需要初始化的功能,该方法会在应用启动时进行调用。

方法入参

Application application (application 类型:android.app.Application)

IBaseBridge<String> baseBridge(IBaseBridge类型:com.huawei.isdpplus.agency. IBaseBridge)

方法出参

void

备注

  • 初始化自定义功能成功,则返回baseBridge. onSuccess()回调初始化成功事件。
  • 初始化自定义功能失败,则返回baseBridge. onFail(String error)回调返回初始化失败事件。

测试用例

不涉及,需厂商自行验证并完成对外测试用例附件中测试用例表格的第1-2条用例。

释放自定义资源

方法名

releaseCustomizedFunctions

功能描述

释放需释放的资源,该方法会在应用关闭时进行调用。

方法入参

Application application (Application 类型:android.app.Application)

IBaseBridge<String> baseBridge(IBaseBridge类型:com.huawei.isdpplus.agency. IBaseBridge)

方法出参

void

备注

  • 释放自定义资源成功,则返回baseBridge. onSuccess()回调初始化成功事件。
  • 释放自定义资源失败,则返回baseBridge. onFail(String error)回调返回初始化失败事件。

测试用例

不涉及,需厂商自行验证并完成对外测试用例附件中测试用例表格的第3-4条用例。

获取网络类型方法名

方法名

getNetworkType

功能描述

获取当前网络类型,如WIFI/5G/4G/3G/2G/UNKNOWN

方法入参

方法出参

BaseResult<String>

备注

  • 获取网络类型成功,则返回BaseResult<String>对象,BaseResult<String>对象通过resultData字段承载网络类型结果。
  • 获取网络类型失败,则返回BaseResult<Void>对象,BaseResult<String>对象包含相应的错误码,错误信息。
  • 错误码建议值为CommonConstants.UNKNOWN。

测试用例

请参考对外测试用例附件中测试用例表格的第5-17条用例。

获取当前设备剩余电量

方法名

getRemainingPower

功能描述

获取设备当前剩余电量。

方法入参

方法出参

BaseResult<Integer>

备注

  • 获取当前设备剩余电量成功,则返回BaseResult<Integer>对象,BaseResult<Integer>对象通过resultData字段承载设备当前剩余电量结果。
  • 获取当前设备剩余电量失败,则返回BaseResult<Integer>对象,BaseResult<Integer>对象包含相应的错误码,错误信息。
  • 错误码建议值为CommonConstants.INNER或CommonConstants.UNKNOWN

测试用例

请参考对外测试用例附件中测试用例表格的第18-20条用例。

获取当前位置信息

方法名

getCurrentLocation

功能描述

获取当前设备所在位置信息。

方法入参

方法出参

BaseResult<Location>(Location类型:android.location.Location)
备注
  • 获取当前位置信息,需要做实时定位,当位置有更新时,该方法返回值需要同步更新。
  • 需要支持室内、室外定位。
  • 设备定位模式需要采用高精度定位模式而非低功耗定位模式和仅适用设备定位模式以保障定位精度。
  • 获取当前设备所在位置信息成功,则返回BaseResult<Location>对象,BaseResult<Location>对象通过resultData字段承载当前设备所在位置信息结果。
  • 获取当前设备所在位置信息失败,则返回BaseResult<Location>对象,BaseResult<Location>对象包含相应的错误码,错误信息。
  • 无定位相关权限时,错误码建议值为CommonConstants. NO_PERMISSION。
  • 其他异常情况时,错误码建议值为CommonConstants.INNER或CommonConstants.UNKNOWN。

测试用例

请参考对外测试用例附件中测试用例表格的第21-22条用例。

获取当前定位坐标系类型

方法名

getLocationType

功能描述

获取当前定位坐标系类型,如“WGS84”,”GCJ02”,”BD09”。坐标系详细定义参考:https://lbsyun.baidu.com/index.php?title=coordinate

方法入参

方法出参

BaseResult<String>

备注:

  • 定位类型有变化时,该方法返回值需要同步更新。
  • 获取当前定位坐标系类型成功,则返回BaseResult<String>对象,BaseResult<String>对象通过resultData字段承载当前定位坐标系类型结果,结果应包含“WGS84”,”GCJ02”,”BD09”三个值之一。
  • 获取当前定位坐标系类型失败,则返回BaseResult<String>对象,BaseResult<String>对象包含相应的错误码,错误信息。

测试用例

请参考对外测试用例附件中测试用例表格的第23-25条用例。

重启设备

方法名

restartDevice

功能描述

调用该方法后,可触发设备重启。

方法入参

方法出参

BaseResult<Void>

备注

  • 重启设备成功,则返回BaseResult<Void>对象。
  • 重启设备失败,则返回BaseResult<Void>对象,BaseResult<Void>对象包含相应的错误码,错误信息。

测试用例

请参考对外测试用例附件中测试用例表格的第26-27条用例。

关闭设备

方法名

closeDevice

功能描述

调用该方法后,可触发设备关机。

方法入参

方法出参:

BaseResult<Void>

备注:

  • 设备关机成功,则返回BaseResult<Void>对象。
  • 设备关机失败,则返回BaseResult<Void>对象,BaseResult<Void>对象包含相应的错误码,错误信息。

测试用例

请参考对外测试用例附件中测试用例表格的第28-29条用例。

安装应用

方法名

installApplication

功能描述

根据入参传入的应用文件存储路径,安装或覆盖安装应用。

方法入参

String   packagePath  应用文件在设备中的存储路径

方法出参

BaseResult<Void>

备注

  • 安装应用成功,则返回BaseResult<Void>对象。
  • 安装应用成功,则返回BaseResult<Void>对象,BaseResult<Void>对象包含相应的错误码,错误信息。

必传参数为空时,错误码建议值为CommonConstants. ILLEGAL_PARAMETER。

测试用例

请参考对外测试用例附件中测试用例表格的第30-32条用例。

获取当前国家编码(方法已废弃,直接返回null即可)

方法名

getCurrentCountryCode

功能描述

根据当前经纬度,返回对应的国家编码如CN,BR(巴西)。

国家与国家编码的对应关系可以参考标准ISO 3166-1两字母代码。

方法入参

方法出参

BaseResult<String>

备注

直接返回null即可。

测试用例

请参考对外测试用例附件中测试用例表格的第33条用例。

更新系统(OTA升级)

方法名

updateSystem

功能描述

传入当前系统更新包存储路径后,可以执行系统OTA升级。

方法入参

String   packagePath  应用文件在设备中的存储路径

方法出参

BaseResult<Void>

示例代码

无,需结合设备系统共同完成该功能开发。

备注

  • 更新系统成功,则返回BaseResult<Void>对象。
  • 更新系统成功,则返回BaseResult<Void>对象,BaseResult<Void>对象包含相应的错误码,错误信息。

必传参数为空时,建议值为CommonConstants. ILLEGAL_PARAMETER。

测试用例

请参考对外测试用例附件中测试用例表格的第34-36条用例。

获取系统版本号

方法名

getSystemVersion

功能描述

获取当前系统版本号。

方法入参

方法出参

BaseResult<Integer>

备注

  • 获取系统号,该名称为数值。用于比较系统版本是否有更新。
  • 获取系统版本号成功,则返回BaseResult<Integer>对象,BaseResult<Integer>对象通过resultData字段承载当前系统版本号。
  • 获取系统版本号失败,则返回BaseResult<Integer>对象,BaseResult<Integer>对象包含相应的错误码,错误信息。
  • 必传参数为空时,建议值为CommonConstants. ILLEGAL_PARAMETER。
  • 类型转换错误时,建议值为CommonConstants.INNER。

测试用例

请参考对外测试用例附件中测试用例表格的第37-38条用例。

获取文件存储路径

方法名

getStoragePath

功能描述

获取文件存储路径。

方法入参

方法出参

BaseResult<String>

备注

如果当前内置存储空间有容量,则返回当前内置存储空间绝对路径。如果当前内置存储空间已满,则检测是否有外置存储空间(如TF卡),如果有外置存储空间且有容量,则返回外置存储空间绝对路径,如果无外置存储空间或外置存储空间已满,则返回空值。

  • 获取文件存储路径成功,则返回BaseResult<String>对象,BaseResult<String>对象通过resultData字段承载文件存储路径结果。
  • 获取文件存储路径失败,则返回BaseResult<String>对象,BaseResult<String>对象包含相应的错误码,错误信息。
  • 存储空间不足,建议值为CommonConstants.INSUFFICIENT_SPACE。
  • 类型转换错误时,建议值为CommonConstants.INNER。
  • 内置存储空间是指系统内置SD卡。
  • 外置存储空间是指外置存储扩展卡如TF卡等。

测试用例

请参考对外测试用例附件中测试用例表格的第39-42条用例。

获取设备存储容量

方法名

getStorageSize

功能描述

获取设备存储容量。

方法入参

方法出参:

BaseResult<Map<String, Long>>

备注:

agencyPublicLibrary依赖库中CommonConstants.java提供了四个常量。

 /**
  * 系统内置存储空间-剩余容量
  */
 public static final String STORAGE_SD_INSIDE_SIZE_REMAIN = "insideRemain";

 /**
  * 系统内置存储空间-总容量
  */
 public static final String STORAGE_SD_INSIDE_SIZE_TOTAL = "insideTotal";

 /**
  * 系统外置存储空间-剩余容量
  */
 public static final String STORAGE_SD_OUTSIDE_SIZE_REMAIN = "outsideRemain";

 /**
  * 系统外置存储空间-总容量
  */
 public static final String STORAGE_SD_OUTSIDE_SIZE_TOTAL = "outsideTotal";
 
  • 如果只获取到当前内置存储空间,则BaseResult<Map<String, Long>>对象中Map包含系统内置存储空间总容量和系统内置存储空间可用容量。例如:sizeMap.put(STORAGE_SD_INSIDE_SIZE_REMAIN,StorageVolumeUtil.getAvailableSize(filePath));。
  • 如果获取到内置存储空间及外置存储空间,则BaseResult<Map<String, Long>>对象中Map包含系统内置存储空间总容量、系统内置存储空间可用容量、系统外置存储空间总容量、系统外置存储空间可用容量。
  • 获取设备存储容量成功,则返回BaseResult<Map<String, Long>>对象,BaseResult<Map<String, Long>>对象通过resultData字段承载设备存储容量结果。
  • 获取设备存储容量失败,则返回BaseResult<Map<String, Long>>对象,BaseResult<Map<String, Long>>对象包含相应的错误码,错误信息。
  • 存储空间不足,建议值为CommonConstants.INSUFFICIENT_SPACE。
  • 类型转换错误是,建议值为CommonConstants.INNER。

参考示例代码如下:

@Override
public BaseResult<Map<String, Long>> getStorageSize() {
     HWLogUtils.getLogUtils().verbose(TAG, "getStorageSize");
     BaseResult<Map<String, Long>> result = new BaseResult<>();
     Map<String, Long> sizeMap = new HashMap<>();
     sizeMap.put(STORAGE_SD_INSIDE_SIZE_REMAIN, 0L);
     sizeMap.put(STORAGE_SD_INSIDE_SIZE_TOTAL, 0L);
     sizeMap.put(STORAGE_SD_OUTSIDE_SIZE_REMAIN, 0L);
     sizeMap.put(STORAGE_SD_OUTSIDE_SIZE_TOTAL, 0L);
     List<MyStorageVolume> storageList = StorageVolumeUtil.getVolumeList(
             SafetyhelmetSdkConfig.getApplicationContext());
     if (storageList.size() == 0) {
         result.setFailInfo(CommonConstants.INSUFFICIENT_SPACE, "INSUFFICIENT_SPACE");
     } else {
         for (int i = 0; i < storageList.size(); i++) {
             if (MyStorageVolume.STORAGE_SD_INSIDE == storageList.get(i).storageType) {
String filePath = storageList.get(i).path;
                 sizeMap.put(STORAGE_SD_INSIDE_SIZE_REMAIN,
                         StorageVolumeUtil.getAvailableSize(filePath));
                 sizeMap.put(STORAGE_SD_INSIDE_SIZE_TOTAL,
                         StorageVolumeUtil.getTotalSize(filePath));
             }
             if (MyStorageVolume.STORAGE_SD_OUTSIDE == storageList.get(i).storageType) {
String filePath = storageList.get(i).path;
                 sizeMap.put(STORAGE_SD_OUTSIDE_SIZE_REMAIN,
                         StorageVolumeUtil.getAvailableSize(filePath));
                 sizeMap.put(STORAGE_SD_OUTSIDE_SIZE_TOTAL,
                         StorageVolumeUtil.getTotalSize(filePath));
             }
         }
         result.setResultData(sizeMap);
     }
     return result;
 }

测试用例

请参考对外测试用例附件中测试用例表格的第43-44条用例。

在屏幕上展示内容

方法名

showScreenMessage

功能描述

用于在设备特定屏幕展示应用信息(非APP界面)。

方法入参

final CommonConstants.MessageType messageType:消息类型(枚举值) 具体值为MESSAGE时展示文本信息,具体值为TIME时展示时间
final String message, 当消息类型为MESSAGE时,待展示的文本信息

方法出参

BaseResult<Void>

备注

  • 在屏幕上展示内容成功,则返回BaseResult<Void>对象。
  • 在屏幕上展示内容失败,则返回BaseResult<Void>对象,BaseResult<Void>对象包含相应的错误码,错误信息。

如当前不支持该方法,建议值为CommonConstants.NOT_SUPPORTED。

测试用例

请参考对外测试用例附件中测试用例表格的第45-47条用例。

打开指示灯

方法名

openLight

功能描述

根据参数类型,打开或关闭不同的指示灯。

方法入参

CommonConstants.LightType lightType:具体内容需要结合设备进行专项约定
boolean value:true为打开指示灯,false为关闭指示灯

方法出参

 BaseResult<Void>

备注

  • 打开指示灯成功,则返回BaseResult<Void>对象。
  • 关闭指示灯成功,则返回BaseResult<Void>对象。
  • 打开指示灯失败,则返回BaseResult<Void>对象,BaseResult<Void>对象包含相应的错误码,错误信息。
  • 关闭指示灯失败,则返回BaseResult<Void>对象,BaseResult<Void>对象包含相应的错误码,错误信息。

如当前不支持该方法,建议值为CommonConstants.NOT_SUPPORTED。

测试用例

请参考对外测试用例附件中测试用例表格的第48-50条用例。

执行远端控制指令

方法名

executeDeviceInstruction

功能描述

执行远端控制指令。

方法入参

/**  * 设备指令控制
  * TURN_UP:向上旋转镜头
  * TURN_DOWN:向下旋转镜头
  * TURN_LEFT:向左旋转镜头
  * TURN_RIGHT:向右旋转镜头
  * TURN_STOP:停止旋转镜头
  */
 public static enum InstructionType {
     TURN_UP,
     TURN_DOWN,
     TURN_LEFT,
     TURN_RIGHT,
     TURN_STOP
 }
 String extraData 额外扩展字段

方法出参

BaseResult<Void> 

备注

  • 执行控制指令成功,则返回BaseResult<Void>对象。
  • 执行控制指令失败,则返回BaseResult<Void>对象,BaseResult<Void>对象包含相应的错误码,错误信息。

    如当前不支持该方法或某种指令,建议值为CommonConstants.NOT_SUPPORTED。

测试用例

请参考对外测试用例附件中测试用例表格的第51-56条用例。

初始化按键配置

方法名

initKeyEventConfig

功能描述

按键信息初始化,用于绑定按键抬起或按下广播信息。

方法入参

方法出参

BaseResult<ArrayList<KeyEventVO>>

备注

  • 初始化按键配置成功,则返回BaseResult<ArrayList<KeyEventVO>>对象。
  • 初始化按键配置失败,则返回BaseResult<ArrayList<KeyEventVO>>对象,BaseResult<ArrayList<KeyEventVO>>对象包含相应的错误码,错误信息。如当前不支持该方法,建议值为CommonConstants.NOT_SUPPORTED。
  • 按键初始化规则如下:
    • 设备不同物理按键按下或抬起均需按照广播形式发送不同action的广播。如设备拍照按键,当拍照按键按下,发送photo.down广播,拍照按键抬起时,发送photo.up广播。
    • 按照设备方向和顺序进行初始化即可。

      下述示例代码定义了一个位于设备顶部,从左往右顺序排列第2个按键,当按键抬起时发送键值内容为KeyCodeConstants.KEYCODE_SOS_UP的广播,当按键落下时发送广播键值内容为KeyCodeConstants.KEYCODE_SOS_DOWN的广播。

      @Override
      public BaseResult<ArrayList<KeyEventVO>> initKeyEventConfig() {
      
           ArrayList<KeyEventVO> keyEventVOS = new ArrayList<>();
           keyEventVOS.add(new KeyEventVO(CommonConstants.KEY_ORIENTATION_TOP, "2",KeyCodeConstants.KEYCODE_SOS_UP,KeyCodeConstants.KEYCODE_SOS_DOWN));
           BaseResult<ArrayList<KeyEventVO>> result = new BaseResult<>();
           result.setResultData(keyEventVOS);
           return result;
       }

      CommonConstants.KEY_ORIENTATION_TOP已在agencyPublicLirary SDK中提供。

测试用例

请参考对外测试用例附件中测试用例表格的第57-58条用例。

打开文件管理器

方法名

openFileManager

功能描述

调用该方法后,可触发打开系统自带的文件管理器。

方法入参

方法出参

BaseResult<Void>

备注

  • 打开文件管理器成功,则返回BaseResult<Void>对象。
  • 打开文件管理器失败,则返回BaseResult<Void>对象,BaseResult<Void>对象包含相应的错误码,错误信息。如当前不支持该方法,建议值为CommonConstants.NOT_SUPPORTED。

    如果当前设备基于MTK芯片开发,则可参考下述代码实现。

    @Override
    public BaseResult<Void> openFileManager() {
         String package_name = "com.mediatek.filemanager";
         BaseResult<Void> result = new BaseResult<>();
         PackageManager packageManager = ContextHolder.getApplicationContext().getPackageManager();
         Intent it = packageManager.getLaunchIntentForPackage(package_name);
         if (it != null) {
             ContextHolder.getApplicationContext().startActivity(it);
         } else {
             result.setFailInfo(CommonConstants.NOT_SUPPORTED, "target activity not exit");
         }
         return result;
     }

测试用例

请参考对外测试用例附件中测试用例表格的第59-60条用例。

执行远端控制指令(带回调)

方法名

executeDeviceInstructionWithCallBack

功能描述

执行远端控制指令并返回异步结果执行回调。

方法入参

/**
 * 设备指令控制
 * ZOOM_SET: 设置焦距倍数
 * ZOOM_QUERY_CURRENT_ZOOM: 查询当前焦距倍数
 * ZOOM_QUERY_MAX_ZOOM: 查询最大支持焦距倍数
  */
public static enum InstructionType {
    ZOOM_SET,
    ZOOM_QUERY_CURRENT_ZOOM,
    ZOOM_QUERY_MAX_ZOOM
 }
String extraData 额外扩展字段
IBaseBridge<String> baseBridge 指令执行回调

方法出参

备注

  • 执行控制指令成功,则返回baseBridge. onSuccess()回调成功事件。
  • 执行控制指令失败,则返回baseBridge. onFail(String error)回调失败事件。
  • 如当前不支持该方法或某种指令,则返回baseBridge. onFail(String error)回调失败事件。
  • 调用示例如下:
    • 查询Zoom最大支持焦距倍数(resultData为实际最大焦距倍数,如“12”
      SafetyhelmetSdkConfig.getsHwSdkHandler()  
              .executeDeviceInstructionWithCallBack(  
                      CommonConstants.InstructionType.ZOOM_QUERY_MAX_ZOOM, "",  
                      new IBaseBridge<String>() {  
                          @Override  
                          public void onSuccess(String resultData) {  
                                              }  
        
                          @Override  
                          public void onFail(String error) {  
                                              }  
                      });
    • 查询Zoom当前焦距倍数(resultData为实际当前焦距倍数,如“1”
      SafetyhelmetSdkConfig.getsHwSdkHandler()  
              .executeDeviceInstructionWithCallBack(  
                      CommonConstants.InstructionType.ZOOM_QUERY_CURRENT_ZOOM, "",  
                      new IBaseBridge<String>() {  
                          @Override  
                          public void onSuccess(String resultData) {  
                                            }  
        
                          @Override  
                          public void onFail(String error) {  
                                                }  
                      });
    • 设置焦距倍数(将待设置焦距倍数值通过json字符串传入{"zoomFactor":1}
      SafetyhelmetSdkConfig.getsHwSdkHandler()  
              .executeDeviceInstructionWithCallBack(CommonConstants.InstructionType.ZOOM_SET,  
                      “{"zoomFactor":1}, new IBaseBridge<String>() {  
                          @Override  
                          public void onSuccess(String resultData) {  
                                                 }  
        
                          @Override  
                          public void onFail(String error) {  
                                                }  
                      });

测试用例

请参考对外测试用例附件中测试用例表格的第61-66条用例。

获取登录信息

方法名

getBuiltLoginInAuth

功能描述

调用该方法后,可获取设备预置二维码中包含的登录账号及验证码。

方法入参

方法出参

BaseResult<String>

备注

该方法仅针对无屏幕设备如智能安全帽、布控球等设备。

  • 获取登录信息成功,则返回BaseResult<String>对象。
    String对象需为JSON字符串,如:
    {
        "account": "test",
        "psdCode": "testPsdCode"
    }

    account、psdCode为固定key值,不能调整。

  • 获取登录信息失败,则返回BaseResult<String>对象,BaseResult<String>对象包含相应的错误码,错误信息。如当前不支持该方法,建议值为CommonConstants.NOT_SUPPORTED。

测试用例

请参考对外测试用例附件中测试用例表格的第67-68条用例。

相关文档