001/* 002 * =========================================================================================== 003 * = COPYRIGHT 004 * PAX Computer Technology (Shenzhen) Co., Ltd. PROPRIETARY INFORMATION 005 * This software is supplied under the terms of a license agreement or nondisclosure 006 * agreement with PAX Computer Technology (Shenzhen) Co., Ltd. and may not be copied or 007 * disclosed except in accordance with the terms in that agreement. 008 * Copyright (C) 2017-2023 PAX Computer Technology (Shenzhen) Co., Ltd. All rights reserved. 009 * Description: // Detail description about the function of this module, 010 * // interfaces with the other modules, and dependencies. 011 * Revision History: 012 * Date Author Action 013 * 2017/04/01 PAX Create/Add/Modify/Delete 014 * =========================================================================================== 015 */ 016 017package com.pax.dal; 018 019import android.content.Context; 020import android.os.Bundle; 021import android.os.IBinder; 022 023import com.pax.dal.entity.ASCaller; 024import com.pax.dal.entity.BaseInfo; 025import com.pax.dal.entity.EBeepMode; 026import com.pax.dal.entity.ENavigationKey; 027import com.pax.dal.entity.ETermInfoKey; 028import com.pax.dal.entity.ETouchMode; 029import com.pax.dal.entity.IAppSwitchListener; 030import com.pax.dal.entity.LanParam; 031import com.pax.dal.entity.NtpServerParam; 032import com.pax.dal.entity.PosMenu; 033 034import java.util.List; 035import java.util.Locale; 036import java.util.Map; 037 038public interface ISys { 039 040 /** 041 * <div class="zh"> 蜂鸣器操作 </div> <div class="en"> Buzzer operation </div> 042 * 043 * @param mode 044 * {@link EBeepMode} <div class="zh"> 发声频率<br/> 045 * {@link EBeepMode#FREQUENCE_LEVEL_0}~{@link EBeepMode#FREQUENCE_LEVEL_6}频率从低到高 046 * <ul> 047 * <li>{@link EBeepMode#FREQUENCE_LEVEL_0}</li> 048 * <li>{@link EBeepMode#FREQUENCE_LEVEL_1}</li> 049 * <li>{@link EBeepMode#FREQUENCE_LEVEL_2}</li> 050 * <li>{@link EBeepMode#FREQUENCE_LEVEL_3}</li> 051 * <li>{@link EBeepMode#FREQUENCE_LEVEL_4}</li> 052 * <li>{@link EBeepMode#FREQUENCE_LEVEL_5}</li> 053 * <li>{@link EBeepMode#FREQUENCE_LEVEL_6}</li> 054 * </ul> 055 * </div> <div class="en"> Sound frequency </div> 056 * @param timeMs 057 * <div class="zh"> 发声持续时间 </div> <div class="en"> Lasting time of beep </div> 058 * @return <div class="zh"> 操作结果 </div> <div class="en"> Operation result </div> 059 */ 060 public boolean beep(EBeepMode mode, int timeMs); 061 062 /** 063 * <div class="zh"> 按频率参数列表发声</div> <div class="en"> beep with the list of frequency parameters </div> 064 * 065 * @param params 066 * <div class="zh"> 频率列表的格式为“频率:时长;频率:时长…”。音频频率单位为赫兹, 067 * 有效范围为(A920mini/A50/A77: 50~4000;A30/A8300/A910S/A920PRO/P100/A920: 50-2750;other: 50-3000), 068 * 时长单位为毫秒,有效范围为0~65535。最多支持100组频率。频率列表参数为“750:100;1500:200”, 069 * 表示以750赫兹播放100毫秒,然后以1500赫兹播放200毫秒。</div> 070 * <div class="en"> The format of the frequency list is "frequency: duration; frequency: duration...". 071 * The unit of audio frequency is Hertz, The valid range is 072 * (A920mini/A50/A77: 50~4000; A30/A8300/A910S/A920PRO/P100/A920: 50-2750; other: 50-3000), 073 * The duration unit is milliseconds, and the valid range is 0~65535. Supports up to 100 groups of frequencies. 074 * The frequency list parameters are "750:100; 1500:200", which means playing at 750 Hz for 100 milliseconds, 075 * and then playing at 1500 Hz for 200 milliseconds.</div> 076 * @return <div class="zh"> 0:成功 其他失败 077 * <ul> 078 * <li>-1:Audio file is not exist, or frequence list invalid</li> 079 * <li>-2:Audio format is not supported</li> 080 * <li>-3:The system volume is zero</li> 081 * <li>-4:Device busy</li> 082 * <li>98:parameter invalid</li> 083 * <li>99:RPC I/O error</li> 084 * <li>100:Not Support for this device</li> 085 * <li>102:Rpc busy</li> 086 * </ul> 087 * </div> <div class="en"> 0:success other:failed 088 * <ul> 089 * <li>-1:Audio file is not exist, or frequence list invalid</li> 090 * <li>-2:Audio format is not supported</li> 091 * <li>-3:The system volume is zero</li> 092 * <li>-4:Device busy</li> 093 * <li>98:parameter invalid</li> 094 * <li>99:RPC I/O error</li> 095 * <li>100:Not Support for this device</li> 096 * <li>102:Rpc busy</li> 097 * </ul> 098 * </div> 099 * @since V2.03.00 100 */ 101 int beep(String params); 102 103 /** 104 * <div class="zh"> 判断设备操作权限 </div> <div class="en"> To check whether APK has operating permission by given device 105 * </div> 106 * 107 * @param packageName 108 * <div class="zh"> 应用包名 </div> <div class="en"> package name </div> 109 * @param usesPermission 110 * <div class="zh"> 权限名 </div> <div class="en"> uses permission name </div> 111 * 112 * @return <div class="zh"> 成功 -true 失败 -false </div> <div class="en"> success -true failed -false </div> 113 * @return 114 */ 115 public boolean checkPermission(String packageName, String usesPermission); 116 117 /** 118 * <div class="zh"> 禁用物理键盘, 仅适用于带物理键盘的终端 </div> <div class="en"> disable physical keyboard, apply only to terminal 119 * with keyboard </div> 120 * 121 * @return <div class="zh">true:成功;false:失败。</div> <div class="en">True:success; False:failure.</div> 122 */ 123 public boolean disableKeyEvent(); 124 125 /** 126 * <div class="zh">设置是否允许ADB和MTP。如果开启权限检查,需在AndroidManifest下添加以下权限: 127 * "com.pax.permission.USB_SECURITY"</div> 128 * <div class="en">Set whether to allow ADB and MTP.If permission checking is enabled, 129 * add the following permissions under AndroidManifest :"com.pax.permission.USB_SECURITY"</div> 130 * 131 * @param enable <div class="zh">true:允许使用ADB和MTP;false:禁用ADB和MTP </div> 132 * <div class="en">True: enable ADB and MTP;False: disable ADB and MTP</div> 133 * 134 * @return <div class="zh">true:成功;false:失败</div> <div class="en">True: success;False: failure</div> 135 * 136 * @since V3.06.00 137 */ 138 public boolean enableADBAndMTP(boolean enable); 139 140 /** 141 * <div class="zh"> 启用物理键盘, 仅适用于带物理键盘的终端 </div> <div class="en"> enable physical keyboard, apply only to terminal 142 * with keyboard </div> 143 * 144 * @return <div class="zh">true:成功;false:失败。</div> <div class="en">true:success; false:failure.</div> 145 */ 146 public boolean enableKeyEvent(); 147 148 /** 149 * <div class="zh"> 设置设备是否启用导航栏。机器重启后恢复默认。默认值:启用。 </div> 150 * <div class="en"> Set to enable NavigationBar or not. Restore the default when the machine is restarted. Default: enabled.</div> 151 * 152 * @param enable <div class="zh">true:可用;false:禁用。</div> <div class="en">true:enable; false:disable.</div> 153 */ 154 public void enableNavigationBar(boolean enable); 155 156 /** 157 * <div class="zh"> 设置设备是否启用目标按键 。机器重启后恢复默认。默认值:启用。</div> 158 * <div class="en"> Set to enable NavigationKey or not. Restore the default when the machine is restarted. Default: enabled.</div> 159 * 160 * @param key 161 * {@link ENavigationKey} <div class="zh"> 按键 </div> <div class="en"> NavigationKey 162 * <ul> 163 * <li>BACK - key for back</li> 164 * <li>HOME - key for home</li> 165 * <li>RECENT - key for recent</li> 166 * </ul> 167 * </div> 168 * @param enable 169 * <div class="zh"> 启用或者不启用 </div> <div class="en"> true or false </div> 170 * 171 */ 172 public void enableNavigationKey(ENavigationKey key, boolean enable); 173 174 /** 175 * <div class="zh"> 设置设备是否启用电源键 。机器重启后恢复默认。默认值:启用。</div> 176 * <div class="en"> Set to enable PowerKey or disable. Restore the default when the machine is restarted. Default: enabled.</div> 177 * 178 * @param enable 179 * <div class="zh"> 180 * <ul> 181 * <li>true -- 启用</li> 182 * <li>false -- 不启用</li> 183 * </ul> 184 * </div> <div class="en"> 185 * <ul> 186 * <li>true -- enable</li> 187 * <li>false -- disable</li> 188 * </ul> 189 * </div> 190 * 191 */ 192 public void enablePowerKey(boolean enable); 193 194 /** 195 * <div class="zh"> 设置设备是否启用状态栏。机器重启后恢复默认。默认值:启用。 </div> 196 * <div class="en"> Set to enable stautusBar or disable. Restore the default when the machine is restarted. Default: enabled.</div> 197 * 198 * @param enable 199 * <div class="zh"> 200 * <ul> 201 * <li>true -- 启用</li> 202 * <li>false -- 不启用</li> 203 * </ul> 204 * </div> <div class="en"> 205 * <ul> 206 * <li>true -- enable</li> 207 * <li>false -- disable</li> 208 * </ul> 209 * </div> 210 */ 211 public void enableStatusBar(boolean enable); 212 213 /** 214 * <div class="zh"> 获取指定时间段的系统日志 </div> <div class="en"> Gets the app logs through the specified time range </div> 215 * 216 * @param storePath 217 * <div class="zh"> Log storage path </div> <div class="en"> Log storage path </div> 218 * 219 * @param startDate 220 * <div class="zh"> 格式:YYYY-MM-DD </div> <div class="en"> Format:YYYY-MM-DD </div> 221 * @param endDate 222 * <div class="zh"> 格式:YYYY-MM-DD </div> <div class="en"> Format:YYYY-MM-DD </div> 223 * @return <div class="zh"> 0:成功 -1:失败 </div> <div class="en"> 0:success -1:faulire </div> 224 * 225 * 226 */ 227 public int getAppLogs(String storePath, String startDate, String endDate); 228 229 /** 230 * <div class="zh"> 读取底座信息.</div> <div class="en"> read base information </div> 231 * 232 * @return {@link BaseInfo} 233 * @since V2.02.00 234 */ 235 BaseInfo getBaseInfo(); 236 237 /** 238 * <div class="zh"> 读取终端日期和时间。 </div> <div class="en"> Get terminal date and time. </div> 239 * 240 * @return <div class="zh"> 格式 YYYYMMDDhhmmssEE (比如:"2013060617373704" = Thu Jun 06 17:37:37 CST 2013) </div> <div 241 * class="en"> Format: YYYYMMDDhhmmssEE(for example:"2013060617373704" = Thu Jun 06 17:37:37 CST 2013) </div> 242 */ 243 public String getDate(); 244 245 /** 246 * <div class="zh"> 获取设备接口版本号 </div> <div class="en"> Get the version of device interface </div> 247 * 248 * @return <div class="zh"> 设备接口版本号 </div> <div class="en"> the version of device of interface </div> 249 */ 250 public String getDevInterfaceVer(); 251 252 /** 253 * <div class="zh">获取PED模式</div> <div class="en"> get PED mode </div> 254 * 255 * @return <div class="zh"><ul> 256 * <li>1.共享模式,可使用模块:IPed、IPedKeyIsolationMixedManager。</li> 257 * <li>2.隔离模式,可使用模块:IPedKeyIsolation。该模式已经不再维护,请升级固件使用新密钥隔离模式。</li> 258 * <li>3.混合模式,可使用模块:IPed、IPedKeyIsolation。该模式已经不再维护,请升级固件使用共享模式的的IPedKeyIsolationMixedManager。</li> 259 * <li>4.新隔离模式,可使用模块:IPedKeyIsolationManager。</li></ul></div> 260 * <div class="en"><ul> 261 * <li>1.Shared mode, available modules: IPed、IPedKeyIsolationMixedManager.</li> 262 * <li>2.Isolation mode, available modules: IPedKeyIsolation. This mode has been deprecated, please upgrade the firmware to use enhanced isolation mode.</li> 263 * <li>3.Mixed mode, available modules: IPed、IPedKeyIsolation. This mode has been deprecated, please upgrade the firmware to use the shared mode IPedKeyIsolationMixedManager.</li> 264 * <li>4.Enhanced isolation mode, available modules: IPedKeyIsolationManager.</li></ul></div> 265 * @since V2.02.00 266 */ 267 int getPedMode(); 268 269 /** 270 * <div class="zh"> 获取PN号 </div> <div class="en"> get device PN</div> 271 * 272 * @return PN 273 * @since V3.01.00 274 */ 275 String getPN(); 276 277 /** 278 * <div class="zh"> 系统产生len字节的随机数 </div> <div class="en"> Generating random number of len bytes. </div> 279 * 280 * @param len 281 * <div class="zh"> 产生随机数的字节数[0-65535] </div> <div class="en"> the length for generating random number 282 * [0-65535] </div> 283 * @return <div class="zh"> 随机数组 </div> <div class="en"> Random bytes array. </div> 284 */ 285 public byte[] getRandom(int len); 286 287 /** 288 * <div class="zh"> 获取系统语言</div> <div class="en"> get system language</div> 289 * 290 * @return <div class="zh"> 当前系统语言 </div> <div class="en"> system language </div> 291 * @since V3.00.00 292 */ 293 String getSystemLanguage(); 294 295 /** 296 * <div class="zh"> 获取终端信息 </div> <div class="en"> Get terminal information </div> 297 * 298 * @return {@link ETermInfoKey} 299 */ 300 public Map<ETermInfoKey, String> getTermInfo(); 301 302 /** 303 * <div class="zh"> 获取扩展终端信息。必须要添加权限:"android.permission.READ_PHONE_STATE"权限。<br/> 304 * 格式:xml </div> <div class="en"> get external terminal info. Permissions must be added:"android.permission.READ_PHONE_STATE".<br/> 305 * format:xml </div> 306 * 307 * 308 * @return <div class="zh">终端扩展信息。XML格式,为2级标签,格式如下:<xmp><root> <tagname1>value1</tagname1> <tagname2>value2</tagname2>....</root></xmp> 309 * 标签列表如下表: 310 * <table border="1"> 311 * <tr> 312 * <th>标签名</th> 313 * <th>数据格式</th> 314 * <th>说明</th> 315 * </tr> 316 * <tr> 317 * <td>flashsize</td> 318 * <td>ASCII</td> 319 * <td>Flash 大小,格式: XXXXMB。</td> 320 * </tr> 321 * <tr> 322 * <td>rfchip</td> 323 * <td>ASCII</td> 324 * <td>射频卡模块类型,格式: XX。</td> 325 * </tr> 326 * <tr> 327 * <td>printer</td> 328 * <td>ASCII</td> 329 * <td>打印机型号,格式: XX。</td> 330 * </tr> 331 * <tr> 332 * <td>RAMSize</td> 333 * <td>ASCII</td> 334 * <td>RAM 大小,格式: XXXXKB。</td> 335 * </tr> 336 * <tr> 337 * <td>tidkeystate</td> 338 * <td>ASCII</td> 339 * <td>TIDKey状态: 0-未上传 1-已上传 2-系统不支持SN KEY。</td> 340 * </tr> 341 * <tr> 342 * <td>securityinfo</td> 343 * <td>ASCII</td> 344 * <td>安全固件版本信息。</td> 345 * </tr> 346 * </table></div> 347 * <div class="en">Terminal extends information.The XML format is level 2 label, and the format is as follows: 348 * <xmp><root> <tagname1>value1</tagname1> <tagname2>value2</tagname2>....</root></xmp> 349 * The list of tags is as follows: 350 * <table border="1"> 351 * <tr> 352 * <th>Tag name</th> 353 * <th>Data format</th> 354 * <th>Description</th> 355 * </tr> 356 * <tr> 357 * <td>flashsize</td> 358 * <td>ASCII</td> 359 * <td>Flash size, format: XXXXMB.</td> 360 * </tr> 361 * <tr> 362 * <td>rfchip</td> 363 * <td>ASCII</td> 364 * <td>Rf card module type, format: XX.</td> 365 * </tr> 366 * <tr> 367 * <td>printer</td> 368 * <td>ASCII</td> 369 * <td>Printer model, format: XX.</td> 370 * </tr> 371 * <tr> 372 * <td>ramsize</td> 373 * <td>ASCII</td> 374 * <td>RAM size, format: XXXXKB.</td> 375 * </tr> 376 * <tr> 377 * <td>tidkeystate</td> 378 * <td>ASCII</td> 379 * <td>TIDKey status: 0- unuploaded 1- uploaded 2- SN KEY is not supported by the system.</td> 380 * </tr> 381 * <tr> 382 * <td>securityinfo</td> 383 * <td>ASCII</td> 384 * <td>Security firmware version information.</td> 385 * </tr> 386 * </table> 387 * </div> 388 * 389 */ 390 public byte[] getTermInfoExt(); 391 392 /** 393 * <div class="zh"> 静默安装应用 。如果开启权限检查,需在AndroidManifest下添加以下权限:"com.pax.permission.UPDATE_APP"。</div> 394 * <div class="en">install app. If permission checking is enabled, add the following permissions under AndroidManifest : 395 * "com.pax.permission.UPDATE_APP".</div> 396 * 397 * @param path 398 * <div class="zh"> 安装包绝对路径 </div> <div class="en"> apk absolute path </div> 399 * @return <div class="zh"> 0:成功 其他失败 400 * <ul> 401 * <li>-103:INSTALL_PARSE_FAILED_NO_CERTIFICATES:安装包中没有解析到任何证书。</li> 402 * <li>-99:缺少更新权限错误</li> 403 * <li>-26:INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE:原应用编译的target SDK版本大于22,升级应用编译的target SDK版本不大于22</li> 404 * <li>-25:低版本应用覆盖高版本错误</li> 405 * <li>-22:安装验签失败</li> 406 * <li>-21:文件不可读或不存在</li> 407 * <li>-7:UPDATE_CUSTOMER_ERR:表示以前安装的同名包与新包的签名不同</li> 408 * <li>1:通用异常,服务不可用错误</li> 409 * </ul> 410 * </div> <div class="en"> 0:success other:failed 411 * <ul> 412 * <li>-103:INSTALL_PARSE_FAILED_NO_CERTIFICATES:if the parser did not find any certificates in the .apk.</li> 413 * <li>-99:UPDATE_PERMISSION_ERROR</li> 414 * <li>-26:INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE:The target SDK version compiled by the original application is greater than 22, and the target SDK version compiled by the upgraded application is not greater than 22.</li> 415 * <li>-25:INSTALL_FAILED_VERSION_DOWNGRADE</li> 416 * <li>-22:INSTALL_FAILED_VERIFICATION_FAILURE</li> 417 * <li>-21:FILE_NOT_READ_EXIST</li> 418 * <li>-7:UPDATE_CUSTOMER_ERR:Indicates that the previously installed package of the same name has a different signature from the new package</li> 419 * <li>1:SERVICE_NOT_AVAILABLE</li> 420 * </ul> 421 * </div> 422 * @since V2.03.00 423 */ 424 int installApp(String path); 425 426 /** 427 * 428 * @return <div class="zh"> true:终端为Debug状态 ;false:终端为Release状态</div> <div class="en"> true: debug status; false:release status</div> 429 */ 430 boolean isDebug(); 431 432 /** 433 * <div class="zh"> 判断设备是否启用导航栏 </div> <div class="en"> To check is the NavigationBar enable or disable </div> 434 * 435 * @return <div class="zh"> 436 * <ul> 437 * <li>true -- 可用</li> 438 * <li>false -- 不可用</li> 439 * </ul> 440 * </div> <div class="en"> 441 * <ul> 442 * <li>true -- enable</li> 443 * <li>false -- disable</li> 444 * </ul> 445 * </div> 446 */ 447 public boolean isNavigationBarEnabled(); 448 449 /** 450 * <div class="zh"> 判断设备是否显示导航栏 </div> <div class="en"> To check is NavigationBar visible or invisible </div> 451 * 452 * @return <div class="zh"> 453 * <ul> 454 * <li>true -- 显示</li> 455 * <li>false -- 隐藏</li> 456 * </ul> 457 * </div> <div class="en"> 458 * <ul> 459 * <li>true -- visible</li> 460 * <li>false -- invisible</li> 461 * </ul> 462 * </div> 463 */ 464 public boolean isNavigationBarVisible(); 465 466 /** 467 * <div class="zh"> 判断设备是否启用目标按键 </div> <div class="en"> To check is the NavigationBar enable or disable </div> 468 * 469 * @param key 470 * {@link ENavigationKey} 471 * @return <div class="zh"> 472 * 473 * </div> <div class="en"> 474 * <ul> 475 * <li>true -- enable</li> 476 * <li>false -- disable</li> 477 * </ul> 478 * </div> 479 */ 480 public boolean isNavigationKeyEnabled(ENavigationKey key); 481 482 /** 483 * <div class="zh"> 获取底座是否在位。</div> <div class="en"> Whether or not the base is in position. </div> 484 * 485 * @return <div class="zh"> true:在位; false:不在位;</div> <div class="en"> true:in position; false:not in position; 486 * </div> 487 * @since V2.03.00 488 */ 489 boolean isOnBase(); 490 491 /** 492 * <div class="zh"> 判断设备是否启用电源键 </div> <div class="en"> To check is the PowerKey enable or disable </div> 493 * 494 * @return <div class="zh"> * 495 * <ul> 496 * <li>true -- 启用</li> 497 * <li>false -- 未启用</li> 498 * </ul> 499 * </div> <div class="en"> * 500 * <ul> 501 * <li>true -- enable</li> 502 * <li>false -- disable</li> 503 * </ul> 504 * </div> 505 * 506 */ 507 public boolean isPowerKeyEnabled(); 508 509 /** 510 * <div class="zh"> 判断设备是否启用状态栏 </div> <div class="en"> To check is the NavigationBar enable or disable </div> 511 * 512 * @return <div class="zh"> 513 * <ul> 514 * <li>true -- 启用</li> 515 * <li>false -- 不启用</li> 516 * </ul> 517 * </div> <div class="en"> 518 * <ul> 519 * <li>true -- enable</li> 520 * <li>false -- disable</li> 521 * </ul> 522 * </div> 523 */ 524 public boolean isStatusBarEnabled(); 525 526 /** 527 * <div class="zh"> 判断设备是否显示状态栏 </div> <div class="en"> To check is StatusBar visible or invisible </div> 528 * 529 * @return <div class="zh"> 530 * <ul> 531 * <li>true -- 显示</li> 532 * <li>false -- 隐藏</li> 533 * </ul> 534 * </div> <div class="en"> 535 * <ul> 536 * <li>true -- visible</li> 537 * <li>false -- invisible</li> 538 * </ul> 539 * </div> 540 */ 541 public boolean isStatusBarVisible(); 542 543 /** 544 * <div class="zh"> 控制4盏LED灯的亮灭状态 提示: 目前仅支持A60、A910、A920、Aries6、Aries8、E500,其中E500只能控制蓝灯 </div> <div class="en"> Control 4 LED lights 545 * on and off status reminder: currently only support A60, A920, A920, Aries6, Aries8, E500, of which E500 can only control blue 546 * light</div> 547 * 548 * @param ledIndex 549 * <div class="zh"> LED灯的索引号 550 * <ul> 551 * <li>BIT0 红灯</li> 552 * <li>BIT1 绿灯</li> 553 * <li>BIT2 黄灯</li> 554 * <li>BIT3 蓝灯</li> 555 * <li>BIT4~BIT7 保留</li> 556 * </ul> 557 * </div> <div class="en">LED light index 558 * <ul> 559 * <li>BIT0 red light</li> 560 * <li>BIT1 green light</li> 561 * <li>BIT2 yellow light</li> 562 * <li>BIT3 blue light</li> 563 * <li>BIT4~BIT7 reserve</li> 564 * </ul> 565 * </div> 566 * @param mode 567 * <div class="zh"> 0: 熄灭 1: 点亮 2:闪烁(暂未实现) </div> <div class="en"> 0: light off 1: light on 568 * 2:twinkle(Temporarily unrealized)</div> 569 * @since V3.01.00 570 */ 571 void ledControl(byte ledIndex, byte mode); 572 573 /** 574 * <div class="zh"> 控制设备提示灯 </div> <div class="en"> Control device notify light</div> 575 * 576 * @param type 577 * <div class="zh"> type - 提示灯类型 578 * <ul> 579 * <li>0x01 磁卡</li> 580 * <li>0x02 IC卡</li> 581 * <li>0x03 非接卡</li> 582 * <li>0x04 密码键盘</li> 583 * <li>0x05 指纹</li> 584 * <li>0x06 摄像头</li> 585 * <li>0x07 扫码</li> 586 * <li>0x08 打印机</li> 587 * <li>0x09 MDB指示灯</li> 588 * <li>0x0A 呼吸灯</li> 589 * </ul> 590 * </div> <div class="en"> type - notifyLight type 591 * <ul> 592 * <li>0x01 mag card</li> 593 * <li>0x02 IC card</li> 594 * <li>0x03 RF card</li> 595 * <li>0x04 PED</li> 596 * <li>0x05 fingerprint</li> 597 * <li>0x06 Camera</li> 598 * <li>0x07 scanner</li> 599 * <li>0x08 printer</li> 600 * <li>0x09 MDB status indicator</li> 601 * <li>0x0A Breathing lamp</li> 602 * </ul> 603 * </div> 604 * @param mode 605 * <div class="zh"> 指示灯模式<br/> 606 * 高4位:指示灯的索引,默认为 0<br/> 607 * 低4位:0 关闭 1 打开<br/> 608 * <br/> 609 * 具体产品型号和指示灯对应关系如下表所示: 610 * <table border="1"> 611 * <tr> 612 * <th>产品型号</th> 613 * <th>指示灯类型</th> 614 * <th>指示灯索引</th> 615 * </tr> 616 * <tr> 617 * <td>PX7A</td> 618 * <td>磁卡(0x01)</td> 619 * <td>0:绿灯 1:红灯</td> 620 * </tr> 621 * <tr> 622 * <td>PX7A</td> 623 * <td>IC卡(0x02)</td> 624 * <td>0:绿灯 1:红灯</td> 625 * </tr> 626 * <tr> 627 * <td>PX7A</td> 628 * <td>非接卡(0x03)</td> 629 * <td>0:logo提示灯</td> 630 * </tr> 631 * <tr> 632 * <td>IM30</td> 633 * <td>磁卡(0x01)</td> 634 * <td>0:绿灯 1:红灯 2:蓝灯</td> 635 * </tr> 636 * <tr> 637 * <td>IM30</td> 638 * <td>IC卡(0x02)</td> 639 * <td>0:绿灯 1:红灯 2:蓝灯</td> 640 * </tr> 641 * <tr> 642 * <td>IM30</td> 643 * <td>MDB状态指示灯(0x09)</td> 644 * <td>0:绿灯 1:红灯 2:蓝灯</td> 645 * </tr> 646 * <tr> 647 * <td>IM30</td> 648 * <td>呼吸灯 (0x0A)</td> 649 * <td>0:绿灯 1:红灯 2:蓝灯</td> 650 * </tr> 651 * </table> 652 * 653 * </div> <div class="en"> notifyLight mode<br/> 654 * High 4: notifyLight index, defaults to 0.<br/> 655 * Low 4: 0 close 1 open<br/> 656 * <br/> 657 * The relationship between the specific product model and the indicator is shown in the following table: 658 * <table border="1"> 659 * <tr> 660 * <th>Product model</th> 661 * <th>notifyLight type</th> 662 * <th>notifyLight index</th> 663 * </tr> 664 * <tr> 665 * <td>PX7A</td> 666 * <td>mag card(0x01)</td> 667 * <td>0:green light 1:red light</td> 668 * </tr> 669 * <tr> 670 * <td>PX7A</td> 671 * <td>IC card(0x02)</td> 672 * <td>0:green light 1:red light</td> 673 * </tr> 674 * <tr> 675 * <td>PX7A</td> 676 * <td>RF card(0x03)</td> 677 * <td>0:logo notifyLight</td> 678 * </tr> 679 * <tr> 680 * <td>IM30</td> 681 * <td>mag card(0x01)</td> 682 * <td>0:green light 1:red light 2: blue light</td> 683 * </tr> 684 * <tr> 685 * <td>IM30</td> 686 * <td>IC card(0x02)</td> 687 * <td>0:green light 1:red light 2: blue light</td> 688 * </tr> 689 * <tr> 690 * <td>IM30</td> 691 * <td>MDB status indicator (0x09)</td> 692 * <td>0:green light 1:red light 2: blue light</td> 693 * </tr> 694 * <tr> 695 * <td>IM30</td> 696 * <td>Breathing lamp (0x0A)</td> 697 * <td>0:green light 1:red light 2: blue light</td> 698 * </tr> 699 * </table> 700 * </div> 701 * @since V3.01.00 702 */ 703 void lightControl(byte type, byte mode); 704 705 /** 706 * <div class="zh"> 读取终端系统的银联唯一序列号.</div> <div class="en"> read TUSN </div> 707 * 708 * @return TUSN 709 * @since V2.00.03 710 */ 711 public String readTUSN(); 712 713 /** 714 * <div class="zh"> 重启 </div> <div class="en"> Set to reboot the device </div> 715 * 716 */ 717 public void reboot(); 718 719 /** 720 * <div class="zh"> 重置状态栏 </div> <div class="en"> Reset the StatusBar </div> 721 * 722 * @deprecated 723 */ 724 public void resetStatusBar(); 725 726 /** 727 * <div class="zh"> 设置系统的日期和时间,星期值将自动算出并设置。 </div> <div class="en"> Setting the system date and time. The day of 728 * week will be calculated automatically. </div> 729 * 730 * @param date 731 * <div class="zh"> YYMMDDhhmmss (合法范围: 年:(20)00~(20)37; 月:1~12; 日:1~31; 小时: 0~24; 分钟和秒: 0-59). </div> 732 * <div class="en"> Pointer to date and time parameter. Format: YYMMDDhhmmss(for example:"130606173737" = 733 * Thu Jun 06 17:37:37 CST 2013) (valid range: year:(20)00~(20)37; month:1~12; date:1~31; hour: 0~24; 734 * minute and second: 0-59). </div> 735 */ 736 public void setDate(String date); 737 738 /** 739 * <div class="zh"> 设置进入设置界面时是否需要密码。如果报不支持异常,请使用{@link #setSettingsNeedPassword(byte[], boolean, ASCaller)}。</div> 740 * <div class="en">Set is password needed to access setting. If throws not support exception, please use {@link #setSettingsNeedPassword(byte[], boolean, ASCaller)}.</div> 741 * 742 * @param need 743 * 744 * <div class="zh"> 745 * <ul> 746 * <li>true -- 需要</li> 747 * <li>false -- 不需要</li> 748 * </ul> 749 * </div> <div class="en"> 750 * <ul> 751 * <li>true -- need</li> 752 * <li>false -- not need</li> 753 * </ul> 754 * </div> 755 * 756 */ 757 public void setSettingsNeedPassword(boolean need); 758 759 /** 760 * <div class="zh"> 设置系统语言 </div> <div class="en"> set system language</div> 761 * 762 * @param locale 763 * {@link Locale} 764 * @return <div class="zh"> 0:成功 其他:失败</div> <div class="en"> 0:successful others:failed </div> 765 * @since V3.00.00 766 */ 767 int setSystemLanguage(Locale locale); 768 769 /** 770 * <div class="zh"> 设置时区 </div> <div class="en"> set time zone </div> 771 * 772 * @param timeZone 773 * <div class="zh"> 格式: continent/city(eg:Asia/Shanghai)</div> <div class="en"> format: 774 * continent/city(eg:Asia/Shanghai) </div> 775 * @since V3.00.00 776 */ 777 void setTimeZone(String timeZone); 778 779 /** 780 * <div class="zh"> 设置设备是否显示导航栏。机器重启后恢复默认。默认:显示。 </div> 781 * <div class="en"> Set to show NavigationBar or not. Restore the default when the machine is restarted. Default: show.</div> 782 * 783 * @param show <div class="zh">true:显示;false:隐藏。</div> <div class="en">true:show; false:hide.</div> 784 */ 785 public void showNavigationBar(boolean show); 786 787 /** 788 * <div class="zh"> 设置设备是否显示状态栏。机器重启后恢复默认。 默认:显示。</div> 789 * <div class="en"> Set to show stautusBar or not. Restore the default when the machine is restarted. Default: show.</div> 790 * 791 * @param show 792 * <div class="zh"> 793 * <ul> 794 * <li>true -- 可用</li> 795 * <li>false -- 不可用</li> 796 * </ul> 797 * </div> <div class="en"> 798 * <ul> 799 * <li>true -- visible</li> 800 * <li>false -- invisible</li> 801 * </ul> 802 * </div> 803 * 804 */ 805 public void showStatusBar(boolean show); 806 807 /** 808 * <div class="zh"> 关机 </div> <div class="en"> Set to shutdown the device </div> 809 * 810 */ 811 public void shutdown(); 812 813 /** 814 * <div class="zh"> 切换sim卡 </div> <div class="en"> switch sim card to another. </div> 815 * 816 * @param num 817 * <div class="zh"> 1或者2,只支持2张sim卡 </div> <div class="en"> should be 1 or 2,only support two sim cards 818 * </div> 819 * @since V2.00.01 820 * @return <div class="zh"> 成功返回true,否则返回false </div> <div class="en"> if success, return true, otherwise return 821 * false </div> 822 */ 823 public boolean switchSimCard(int num); 824 825 /** 826 * <div class="zh"> 更改设备触摸模式 </div> <div class="en"> set touch mode to device </div> 827 * 828 * @param touchMode 829 * {@link ETouchMode} <div class="zh"> touchMode 830 * <ul> 831 * <li>PEN -笔</li> 832 * <li>FINGER -手指</li> 833 * </ul> 834 * </div> <div class="en"> touchMode 835 * <ul> 836 * <li>PEN -by pen</li> 837 * <li>FINGER -by finger</li> 838 * </ul> 839 * </div> 840 * 841 */ 842 public void switchTouchMode(ETouchMode touchMode); 843 844 /** 845 * <div class="zh"> 静默卸载应用 。如果开启权限检查,需在AndroidManifest下添加以下权限:"com.pax.permission.UPDATE_APP"。</div> 846 * <div class="en"> uninstall app. If permission checking is enabled, add the following permissions under AndroidManifest : 847 * "com.pax.permission.UPDATE_APP".</div> 848 * 849 * @param packgeName 850 * <div class="zh"> 包名 </div> <div class="en"> package name </div> 851 * @return <div class="zh"> 0:成功 其他失败 852 * <ul> 853 * <li>-101:未知错误</li> 854 * <li>-99:缺少更新权限错误</li> 855 * <li>-50:错误包名或类名</li> 856 * <li>-25:低版本应用覆盖高版本错误</li> 857 * <li>-22:安装验签失败</li> 858 * <li>-21:文件不可读或不存在</li> 859 * <li>-11:获取subId错误</li> 860 * <li>-8:写modem错误</li> 861 * <li>-7:写资源包错误</li> 862 * <li>-6:写PUK错误</li> 863 * <li>-5:写SP错误</li> 864 * <li>-4:RPC open错误</li> 865 * <li>-3:验签错误</li> 866 * <li>-2:解压错误</li> 867 * <li>-1:升级包错误</li> 868 * <li>1:服务不可用错误</li> 869 * <li>2:安装失败错误</li> 870 * <li>3:超时错误</li> 871 * <li>4:获取数据失败</li> 872 * <li>5:未设置USB安全权限</li> 873 * </ul> 874 * </div> <div class="en"> 0:success other:failed 875 * <ul> 876 * <li>-101:UPDATE_UNKNOWN_ERR</li> 877 * <li>-99:UPDATE_PERMISSION_ERROR</li> 878 * <li>-50:PKG_OR_CLASS_NAME_ERROR</li> 879 * <li>-25:INSTALL_FAILED_VERSION_DOWNGRADE</li> 880 * <li>-22:INSTALL_FAILED_VERIFICATION_FAILURE</li> 881 * <li>-21:FILE_NOT_READ_EXIST</li> 882 * <li>-11:GET_SUBID_ERROR</li> 883 * <li>-8:UPDATE_MODEM_ERR</li> 884 * <li>-7:UPDATE_CUSTOMER_ERR</li> 885 * <li>-6:UPDATE_WRITE_PUK_ERR</li> 886 * <li>-5:UPDATE_WRITE_SP_IMG_ERR</li> 887 * <li>-4:UPDATE_RPC_OPEN_ERR</li> 888 * <li>-3:UPDATE_VERIFY_ERR</li> 889 * <li>-2:UPDATE_UNZIP_ERR</li> 890 * <li>-1:UPDATE_PACKAGE_ERR</li> 891 * <li>1:SERVICE_NOT_AVAILABLE</li> 892 * <li>2:INSTALL_FAIL</li> 893 * <li>3:TIMEOUT_ERR</li> 894 * <li>4:READ_DATA_FAIL</li> 895 * <li>5:NO_USBSECURITY_PERMISSION</li> 896 * </ul> 897 * </div> 898 * @since V2.03.00 899 */ 900 int uninstallApp(String packgeName); 901 902 /** 903 * <div class="zh"> 更新固件。如果开启权限检查,需在AndroidManifest下添加以下权限:"com.pax.permission.UPDATE_FIRM"。 </div> 904 * <div class="en"> update firmware. If permission checking is enabled, add the following permissions under AndroidManifest : 905 * "com.pax.permission.UPDATE_FIRM".</div> 906 * 907 * @param path 908 * <div class="zh"> 固件绝对路径 </div> <div class="en"> firmware absolute path </div> 909 * @return <div class="zh"> 0:成功 其他失败 910 * <ul> 911 * <li>-101:未知错误</li> 912 * <li>-99:缺少更新权限错误</li> 913 * <li>-50:错误包名或类名</li> 914 * <li>-25:低版本应用覆盖高版本错误</li> 915 * <li>-22:安装验签失败</li> 916 * <li>-21:文件不可读或不存在</li> 917 * <li>-11:获取subId错误</li> 918 * <li>-10:差分包版本和当前固件版本不一致或version文件不存在</li> 919 * <li>-8:写modem错误</li> 920 * <li>-7:写资源包错误</li> 921 * <li>-6:写PUK错误</li> 922 * <li>-5:写SP错误</li> 923 * <li>-4:RPC open错误</li> 924 * <li>-3:验签错误</li> 925 * <li>-2:解压错误</li> 926 * <li>-1:升级包错误</li> 927 * <li>1:服务不可用错误</li> 928 * <li>2:安装失败错误</li> 929 * <li>3:超时错误</li> 930 * <li>4:获取数据失败</li> 931 * <li>5:未设置USB安全权限</li> 932 * </ul> 933 * </div> <div class="en"> 0:success other:failed 934 * <ul> 935 * <li>-101:UPDATE_UNKNOWN_ERR</li> 936 * <li>-99:UPDATE_PERMISSION_ERROR</li> 937 * <li>-50:PKG_OR_CLASS_NAME_ERROR</li> 938 * <li>-25:INSTALL_FAILED_VERSION_DOWNGRADE</li> 939 * <li>-22:INSTALL_FAILED_VERIFICATION_FAILURE</li> 940 * <li>-21:FILE_NOT_READ_EXIST</li> 941 * <li>-11:GET_SUBID_ERROR</li> 942 * <li>-10:The differential package version is inconsistent with the current firmware version or the version file does not exist</li> 943 * <li>-8:UPDATE_MODEM_ERR</li> 944 * <li>-7:UPDATE_CUSTOMER_ERR</li> 945 * <li>-6:UPDATE_WRITE_PUK_ERR</li> 946 * <li>-5:UPDATE_WRITE_SP_IMG_ERR</li> 947 * <li>-4:UPDATE_RPC_OPEN_ERR</li> 948 * <li>-3:UPDATE_VERIFY_ERR</li> 949 * <li>-2:UPDATE_UNZIP_ERR</li> 950 * <li>-1:UPDATE_PACKAGE_ERR</li> 951 * <li>1:SERVICE_NOT_AVAILABLE</li> 952 * <li>2:INSTALL_FAIL</li> 953 * <li>3:TIMEOUT_ERR</li> 954 * <li>4:READ_DATA_FAIL</li> 955 * <li>5:NO_USBSECURITY_PERMISSION</li> 956 * </ul> 957 * </div> 958 * @since V2.03.00 959 */ 960 int updateFirmware(String path); 961 962 /** 963 * <div class="zh"> 写CSN </div> <div class="en"> write customer serial number </div> 964 * 965 * @param csn 966 * <div class="zh"> CSN 最大 128字节 </div> <div class="en"> CSN maximum 128 bytes </div> 967 */ 968 public void writeCSN(String csn); 969 /** 970 * <div class="zh">设置屏幕亮度</div> <div class="en">set screen brightness</div> 971 * 972 * @param level <div class="zh">亮度等级.[0-100]</div> <div class="en">brightness level.[0-100]</div> 973 * 974 * @since V3.06.00 975 */ 976 void setScreenBrightness(int level); 977 978 /** 979 * <div class="zh">打开或者关闭打印服务</div> <div class="en">Turn on or off the print service</div> 980 * 981 * @param context <div class="zh">上下文</div> <div class="en">context</div> 982 * 983 * @param pkg <div class="zh">打印服务的包名</div> <div class="en">Package name of the print service</div> 984 * 985 * @param cls <div class="zh">打印服务的类名</div> <div class="en">Class name of the print service</div> 986 * 987 * @param onOff <div class="zh">开关,true:打开;false:关闭</div> <div class="en">Switch, true:turn on; false:turn off</div> 988 * 989 * @return <div class="zh">结果,true:成功;false:失败</div> <div class="en">Result, ture:success; false:fail</div> 990 * 991 * @since V3.07.00 992 */ 993 boolean switchPrintService(Context context, String pkg, String cls, boolean onOff); 994 995 /** 996 * <div class="zh">隐藏或显示系统设置的菜单和快捷设置的开关。调用会清除上一次调用产生的效果。</div> 997 * <div class="en">Hide or show the system settings menu and quick settings switch. 998 * The call clears the effect of the last call.</div> 999 * 1000 * @param posMenu <div class="zh">菜单集合。Map.key: 菜单{@link PosMenu}; Map.value: true表示隐藏,false表示显示。</div> 1001 * <div class="en">Menu collection.Map.key:Menu, {@link PosMenu}; Map.value: true means hide, false means show.</div> 1002 * 1003 * @since V3.07.00 1004 */ 1005 void disablePosMenu(Map<PosMenu, Boolean> posMenu); 1006 1007 /** 1008 * <div class="zh">设置屏幕休眠时间。到了休眠时间,如果有安装屏保程序,显示屏保,如果没有屏保程序,息屏。</div> 1009 * <div class="en">Set the screen off time. When it comes time to off screen, display the screensaver if you have it installed, 1010 * or off screen if you don't have it.</div> 1011 * 1012 * @param millisecond <div class="zh">屏幕休眠时间。时间必须从“0秒、15秒、30秒、1分钟、2分钟、5分钟、10分钟、30分钟、Integer.MAX_VALUE”中选择。 1013 * 0秒表示立即休眠。Integer.MAX_VALUE表示永不休眠。单位:毫秒。</div> 1014 * <div class="en">Time of off screen. Time must be chosen from "0 seconds, 15 seconds, 30 seconds, 1 minute, 2 minutes, 5 minutes, 10 minutes, 1015 * 30 minutes, Integer.MAX_VALUE". 0 seconds means immediate sleep. Integer.MAX_VALUE means never sleep. unit: millisecond.</div> 1016 * 1017 * @throws Exception 1018 * @since V3.08.00 1019 */ 1020 void setScreenOffTime(int millisecond) throws Exception; 1021 1022 /** 1023 * <div class="zh">获取屏幕休眠时间。</div> <div class="en">Get the screen off time</div> 1024 * 1025 * @return <div clas="zh">屏幕休眠时间。单位:毫秒。</div> <div class="en">The screen off time. unit:millisecond.</div> 1026 * 1027 * @throws Exception 1028 * @since V3.08.00 1029 */ 1030 int getScreenOffTime() throws Exception; 1031 1032 /** 1033 * <div class="zh">设置屏保显示时间。</div> <div class="en">Set screen saver display time.</div> 1034 * 1035 * @param millisecond <div class="zh">屏保显示时间。单位:毫秒。</div> <div class="en">Screen saver display time. unit:millsecond.</div> 1036 * 1037 * @throws Exception 1038 * @since V3.08.00 1039 */ 1040 void setScreenSaverTime(int millisecond) throws Exception; 1041 1042 /** 1043 * <div class="zh">设置USB模式。如果开启权限检查,需在AndroidManifest下添加以下权限:"com.pax.permission.USB_SECURITY"</div> 1044 * <div class="en">Set USB mode. If permission checking is enabled, add the following permissions under AndroidManifest : 1045 * "com.pax.permission.USB_SECURITY"</div> 1046 * 1047 * @param mode <div class="zh">协议模式。 1048 * <ul> 1049 * <li>0:禁用ADB和MTP</li> 1050 * <li>1:默认模式</li> 1051 * <li>2:文件传输模式</li> 1052 * <li>3:CCID(虚拟读卡器)模式</li> 1053 * <li>4:POSVCOM(百富虚拟串口)模式</li> 1054 * <li>5: USB tethering (RNDIS)</li> 1055 * <li>6: USB-PC internet share (RNDIS reverse)</li> 1056 * <li>7: USB ECM网络共享</li> 1057 * <li>8: USB ECM-HOST网络共享</li> 1058 * <li>9: 表示开启SDT,MTP</li> 1059 * <li>10: USB RNDIS no tethering</li> 1060 * <li>11: RNDIS reverse with serial</li> 1061 * <li>注: A920 5、A920 7、A930 仅支持模式1、2、3,需要手动重启后生效</li> 1062 * </ul> 1063 * </div> 1064 * <div class="en">Protocol mode. 1065 * <ul> 1066 * <li>0: Disable ADB and MTP</li> 1067 * <li>1: Default mode</li> 1068 * <li>2: File transfer mode</li> 1069 * <li>3: CCID(Virtual card reader)mode</li> 1070 * <li>4: POSVCOM(POS Virtual COM Of Pax)mode</li> 1071 * <li>5: USB tethering (RNDIS)</li> 1072 * <li>6: USB-PC internet share (RNDIS reverse)</li> 1073 * <li>7: USB ECM tethering</li> 1074 * <li>8: USB ECM-HOST tethering</li> 1075 * <li>9: SDT and MTP are enabled</li> 1076 * <li>10: USB RNDIS no tethering</li> 1077 * <li>11: RNDIS reverse with serial</li> 1078 * <li>Note: A9205, A9207, and A930 only support modes 1, 2, and 3, and need to be manually restarted to take effect</li> 1079 * </ul> 1080 * </div> 1081 * 1082 * @throws Exception 1083 * @since V3.08.00 1084 */ 1085 1086 void setUsbMode(int mode) throws Exception; 1087 1088 /** 1089 * <div class="zh">设置是否显示USBDevice和USBAccessory权限弹框。</div> <div class="en">Set whether to show USBDevice and USBAccessory permissions dialog.</div> 1090 * 1091 * @param enable <div class="zh"><ul> 1092 * <li>true:显示弹框,手动确定是否给予权限。</li> 1093 * <li>false:不显示弹框,直接给予权限。</li></ul></div> 1094 * <div class="en"><ul> 1095 * <li>true:Show dialog, manually determine whether permission is granted.</li> 1096 * <li>false:Don't show dialog, grant permission directly.</li> 1097 * </ul></div> 1098 * @since V3.08.00 1099 */ 1100 void enableUsbPermissionDialog(boolean enable); 1101 1102 /** 1103 * <div class="zh">设置wifi静态IP。wifi网络必须已连接。</div> <div class="en">Set wifi static IP. Wifi network must be connected..</div> 1104 * 1105 * @param ip <div class="zh">IP地址。</div> <div class="en">IP address.</div> 1106 * 1107 * @param gateway <div class="zh">网关。</div> <div class="en">Gateway.</div> 1108 * 1109 * @param networkPrefixLength <div class="zh">网络前缀长度。</div> <div class="en">Network prefix length.</div> 1110 * 1111 * @param dns1 <div class="zh">DNS1。</div> <div class="en">DNS1.</div> 1112 * 1113 * @param dns2 <div class="zh">DNS2</div> <div class="en">DNS2.</div> 1114 * 1115 * @param reconnect <div class="zh">是否重新连接wifi。需要重新连接才能生效。 </div> <div class="en">Whether to reconnect to wifi. A reconnection is required to take effect.</div> 1116 * 1117 * @return <div class="zh">结果。ture:设置成功 ;false:设置失败。</div> <div class="en">The results. Ture: set up successfully; False: setup failed.</div> 1118 * @since V3.08.00 1119 */ 1120 boolean setWifiStaticIp(String ip, String gateway, int networkPrefixLength, String dns1, String dns2, boolean reconnect); 1121 1122 /** 1123 * <div class="zh">将服务添加到ServiceManager中。</div> <div class="en">Add a service to the ServiceManager.</div> 1124 * 1125 * @param name <div class="zh">服务名称。</div> <div class="en">The service name.</div> 1126 * 1127 * @param service <div class="zh">服务对象。</div> <div class="en">The service object.</div> 1128 * @since V3.10.00 1129 */ 1130 void addService(String name, IBinder service); 1131 1132 /** 1133 * <div class="zh">设置是否开启自动确定时区。</div> <div class="en">Set whether to enable automatic time zone determination.</div> 1134 * 1135 * @param enable <div class="zh">true:开启;false:关闭。</div> <div class="en">true:open; false:off.</div> 1136 * @since V3.10.00 1137 */ 1138 void enableAutoTimeZone(boolean enable); 1139 1140 /** 1141 * <div class="zh">获取自动确定时区是否开启。</div> <div class="en">Gets the automatic determination of whether the time zone is open.</div> 1142 * 1143 * @return <div class="zh">true:开启;false:关闭。</div> <div class="en">true:open; false:off.</div> 1144 * @since V3.10.00 1145 */ 1146 boolean isAutoTimeZone(); 1147 1148 /** 1149 * <div class="zh">设置是否开启自动确定时间和日期。</div> <div class="en">Set whether to enable automatic determination of time and date.</div> 1150 * 1151 * @param enable <div class="zh">true:开启;false:关闭。</div> <div class="en">true:open; false:off.</div> 1152 * @since V3.10.00 1153 */ 1154 void enableAutoTime(boolean enable); 1155 1156 /** 1157 * <div class="zh">获取自动确定时间和日期是否开启。</div> <div class="en">Gets whether the time and date are enabled automatically.</div> 1158 * 1159 * @return <div class="zh">true:开启;false:关闭。</div> <div class="en">true:open; false:off.</div> 1160 * @since V3.10.00 1161 */ 1162 boolean isAutoTime(); 1163 1164 /** 1165 * <div class="zh">设置屏保程序。</div> <div class="en">Set up the screen saver.</div> 1166 * 1167 * @param packageNmae <div class="zh">包名。</div> <div class="en">The package name.</div> 1168 * 1169 * @param component <div class="zh">服务的类名。</div> <div class="en">The class name of the service.</div> 1170 * @since V3.10.00 1171 */ 1172 void setScreenSaver(String packageNmae, String component); 1173 1174 /** 1175 * <div class="zh">修改系统“设置”应用的密码。长度至少7位,至少包含三个数字,三个字母,和一个特殊符号。调用高级权限接口需要传入签名公钥和{@link ASCaller}参数。</div> 1176 * <div class="en">Change the password for the system Settings application.At least 7 digits in length, including at least three Numbers, three letters, 1177 * and a special symbol. Calling the advanced permission interface requires passing in the signature public key and {@link ASCaller} parameters</div> 1178 * 1179 * @param pubKey <div class="zh">经过PAX签名的公钥。</div> <div class="en">Public key signed by PAX.</div> 1180 * 1181 * @param password <div class="zh">密码</div> <div class="en">Password</div> 1182 * 1183 * @param caller <div class="zh">高级权限接口的回调。{@link ASCaller}</div> 1184 * <div class="en">Callbacks to the advanced interfaces. see {@link ASCaller}</div> 1185 * @since V3.11.00 1186 */ 1187 void setSettingsPassword(byte[] pubKey, String password, ASCaller caller); 1188 1189 /** 1190 * <div class="zh">获取屏保应用的包名。</div> <div class="en">Gets the package name of the screensaver.</div> 1191 * 1192 * @return <div class="zh">屏保应用的包名。</div> <div class="en">The package name of the screensaver.</div> 1193 * @throws Exception 1194 * @since V3.11.00 1195 */ 1196 String getScreenSaver() throws Exception; 1197 1198 /** 1199 * <div class="zh">设置屏保是否可用。</div> <div class="en">Set whether the screensaver is available.</div> 1200 * 1201 * @param enable <div class="zh"> 1202 * <ul> 1203 * <li>true:可用。</li> 1204 * <li>false:不可用。</li> 1205 * </ul></div> 1206 * <div class="en"> 1207 * <ul> 1208 * <li>true:Available.</li> 1209 * <li>false:Unavailable.</li> 1210 * </ul></div> 1211 * @throws Exception 1212 * @since V3.11.00 1213 */ 1214 void enableScreenSaver(boolean enable) throws Exception; 1215 1216 /** 1217 * <div class="zh">设置屏保激活类型。</div> <div class="en">Set the screen saver activation type.</div> 1218 * 1219 * @param type <div class="zh"> 1220 * <ul> 1221 * <li>0:插入基座时激活。</li> 1222 * <li>1:充电时激活。</li> 1223 * <li>2:插入基座时或者充电时激活。</li> 1224 * </ul></div> <div class="en"> 1225 * <ul> 1226 * <li>0:Activate when plugged into the base.</li> 1227 * <li>1:Activate when charging.</li> 1228 * <li>2:Activate when plugged into the base or when charging.</li> 1229 * </ul></div> 1230 * @throws Exception 1231 * @since V3.11.00 1232 */ 1233 void setScreenSaverActivateType(int type) throws Exception; 1234 1235 /** 1236 * <div class="zh">长按电源键弹出密码框,输入密码后才进去"关机/重启"界面,不输入30秒后消失。</div> 1237 * <div class="en">Long press the power button to pop up the password box, enter the "shutdown/restart" interface after entering the password, and disappear after 30 seconds.</div> 1238 * 1239 * @param enable <div class="zh"> 1240 * <ul> 1241 * <li>true:启用。</li> 1242 * <li>false:不启用。</li> 1243 * </ul></div> <div class="en"> 1244 * <ul> 1245 * <li>true:enable.</li> 1246 * <li>false:disable.</li> 1247 * </ul></div> 1248 * 1249 * @throws Exception 1250 * @since V3.12.00 1251 */ 1252 void enableShutdownConfirm(boolean enable) throws Exception; 1253 1254 /** 1255 * <div class="zh">获取当前USB模式。如果开启权限检查,需在AndroidManifest下添加以下权限:"com.pax.permission.USB_SECURITY"</div> 1256 * <div class="en">Get the current USB mode. If permission checking is enabled, add the following permissions under AndroidManifest : 1257 * "com.pax.permission.USB_SECURITY"</div> 1258 * 1259 * @return <div class="zh">协议模式。 1260 * <ul> 1261 * <li>0:禁用ADB和MTP</li> 1262 * <li>1:默认模式</li> 1263 * <li>2:文件传输模式</li> 1264 * <li>3:CCID(虚拟读卡器)模式</li> 1265 * <li>4:POSVCOM(百富虚拟串口)模式</li> 1266 * <li>5 表示USB tethering (RNDIS)</li> 1267 * <li>6 表示USB-PC internet share (RNDIS reverse)</li> 1268 * <li>7 表示USB ECM网络共享</li> 1269 * <li>8 表示USB ECM-HOST网络共享</li> 1270 * <li>9 表示开启SDT,MTP</li> 1271 * <li>10 表示USB RNDIS no tethering(无网络共享)</li> 1272 * <li>11 表示RNDIS reverse with serial</li> 1273 * <li>注:A920 5\A920 7\A930仅支持模式1/2/3, 需要手动重启后生效</li> 1274 * </ul> 1275 * </div> 1276 * <div class="en">Protocol mode. 1277 * <ul> 1278 * <li>0: Disable ADB and MTP</li> 1279 * <li>1: Default mode</li> 1280 * <li>2: File transfer mode</li> 1281 * <li>3: CCID(Virtual card reader)mode</li> 1282 * <li>4: POSVCOM(POS Virtual COM Of Pax)mode</li> 1283 * <li>5: Indicates USB tethering (RNDIS)</li> 1284 * <li>6: USB-PC internet share (RNDIS reverse)</li> 1285 * <li>7: Indicates USB ECM network sharing</li> 1286 * <li>8: Indicates the USB ECM-HOST network share</li> 1287 * <li>9: SDT and MTP are enabled</li> 1288 * <li>10 USB RNDIS no tethering (no network sharing)</li> 1289 * <li>11 Indicates that RNDIS reverse with serial</li> 1290 * <li>Note: A920 5\A920 7\A930 supports only modes 1/2/3 and takes effect after manual restart</li> 1291 * </ul> 1292 * </div> 1293 * 1294 * @throws Exception 1295 * @since V3.13.00 1296 */ 1297 int getUsbMode() throws Exception; 1298 1299 /** 1300 * <div class="zh">设置是否启用音量键。机器重启后恢复默认。默认值:启用。</div> 1301 * <div class="en">Sets whether the volume key is enabled. Restore the default when the machine is restarted. Default: enabled.</div> 1302 * 1303 * @param enable <div class="zh"> 1304 * <ul> 1305 * <li>true:启用。</li> 1306 * <li>false:不启用。</li> 1307 * </ul></div> 1308 * <div class="en"> 1309 * <ul> 1310 * <li>true:enable.</li> 1311 * <li>false:disable.</li> 1312 * </ul> 1313 * </div> 1314 * 1315 * @throws Exception 1316 * @since V3.13.00 1317 */ 1318 void enableVolumeKey(boolean enable) throws Exception; 1319 1320 /** 1321 * <div class="zh">判断音量键是否启用。</div> <div class="en">Check whether the volume key is enabled.</div> 1322 * 1323 * @return <div class="zh"> 1324 * <ul> 1325 * <li>true:启用。</li> 1326 * <li>false:不启用。</li> 1327 * </ul></div> 1328 * <div class="en"> 1329 * <ul> 1330 * <li>true:enable.</li> 1331 * <li>false:disable.</li> 1332 * </ul> 1333 * </div> 1334 * 1335 * @throws Exception 1336 * @since V3.13.00 1337 */ 1338 boolean isVolumeKeyEnable() throws Exception; 1339 1340 /** 1341 * <div class="zh">设置是否启用系统OTA通道。</div> <div class="en">Sets whether the system OTA channel is enabled.</div> 1342 * 1343 * @param enable <div class="zh"> 1344 * <ul> 1345 * <li>true:启用。</li> 1346 * <li>false:不启用。</li> 1347 * </ul></div> 1348 * <div class="en"> 1349 * <ul> 1350 * <li>true:enable.</li> 1351 * <li>false:disable.</li> 1352 * </ul> 1353 * </div> 1354 * 1355 * @throws Exception 1356 * @since V3.14.00 1357 */ 1358 void enableSystemOTA(boolean enable) throws Exception; 1359 1360 /** 1361 * <div class="zh">判断系统OTA通道是否启用。</div> <div class="en">Determine whether the system OTA channel is enabled.</div> 1362 * 1363 * @return <div class="zh"> 1364 * <ul> 1365 * <li>true:启用。</li> 1366 * <li>false:不启用。</li> 1367 * </ul></div> 1368 * <div class="en"> 1369 * <ul> 1370 * <li>true:enable.</li> 1371 * <li>false:disable.</li> 1372 * </ul> 1373 * </div> 1374 * @throws Exception 1375 * @since V3.14.00 1376 */ 1377 boolean isSystemOTAEnable() throws Exception; 1378 1379 /** 1380 * <div class="zh">设置快捷键扫码结果处理模式。</div> <div class="en">Set the shortcut key to scan the result processing mode.</div> 1381 * 1382 * @param mode <div class="zh"> 1383 * <ul> 1384 * <li>0:输入到输入框({@link IScanCodec}不支持)。</li> 1385 * <li>1:发送广播,系统按以下方式发送广播: 1386 * <p>private static final String SEND_BROADCAST_ACTION = "com.barcode.sendBroadcast";</p> 1387 * <p>Intent resultIntent = new Intent(SEND_BROADCAST_ACTION);</p> 1388 * <p>resultIntent.putExtra("BARCODE", content); </p> 1389 * <p>resultIntent.putExtra("CODE_FORMAT", format);</p> 1390 * <p>sendBroadcast(resultIntent);</p> 1391 * </li> 1392 * <li>2:复制到粘贴板。</li> 1393 * </ul> 1394 * </div> 1395 * <div class="en"> 1396 * <ul> 1397 * <li>0:Type into the input box. ({@link IScanCodec} not supported.)</li> 1398 * <li>1:To send the broadcast, the system sends the broadcast in the following way: 1399 * <p>private static final String SEND_BROADCAST_ACTION = "com.barcode.sendBroadcast";</p> 1400 * <p>Intent resultIntent = new Intent(SEND_BROADCAST_ACTION);</p> 1401 * <p>resultIntent.putExtra("BARCODE", content); </p> 1402 * <p>resultIntent.putExtra("CODE_FORMAT", format);</p> 1403 * <p>sendBroadcast(resultIntent);</p> 1404 * </li> 1405 * <li>2:Copy to the clipboard.</li> 1406 * </ul> 1407 * </div> 1408 * @throws Exception 1409 * @since V3.16.00 1410 */ 1411 void setScanResultMode(int mode) throws Exception; 1412 1413 /** 1414 * <div class="zh"> 设置进入设置界面时是否需要密码。</div> 1415 * <div class="en">Set whether a password is required when entering the setting. </div> 1416 * 1417 * @param pubKey <div class="zh">经过PAX签名的公钥。</div> <div class="en">Public key signed by PAX.</div> 1418 * @param need <div class="zh">true:需要;false:不需要。</div> <div class="en">true:need; false: not need.</div> 1419 * @param caller <div class="zh">高级权限接口的回调。{@link ASCaller}</div> 1420 * <div class="en">Callbacks to the advanced interfaces. see {@link ASCaller}</div> 1421 * @throws Exception 1422 * @since V3.16.00 1423 */ 1424 void setSettingsNeedPassword(byte[] pubKey, boolean need, ASCaller caller) throws Exception; 1425 1426 /** 1427 * <div class="zh">清除最近使用的程序列表。</div> <div class="en">Clears the list of recently used programs.</div> 1428 * 1429 * @param excludePackageNames <div class="zh">不清除的程序包名列表。如果为NULL或者size为0,则清除所有程序。</div> 1430 * <div class="en">List of package names not cleared.If NULL or size 0, clear all programs.</div> 1431 * @throws Exception 1432 * @since V3.17.00 1433 */ 1434 void removeRecentTasks(List<String> excludePackageNames) throws Exception; 1435 1436 /** 1437 * <div class="zh">获取应用白名单,白名单中的应用不能卸载。</div> 1438 * <div class="en">Get application whitelist. Whitelist application cannot be uninstalled.</div> 1439 * 1440 * @param pubKey <div class="zh">经过PAX签名的公钥。</div> <div class="en">Public key signed by PAX.</div> 1441 * @param caller <div class="zh">高级权限接口的回调。{@link ASCaller}</div> 1442 * <div class="en">Callbacks to the advanced interfaces. see {@link ASCaller}</div> 1443 * @return <div class="zh">应用白名单。</div> <div class="en">The application whitelist.</div> 1444 * @throws Exception 1445 * @since V3.19.00 1446 */ 1447 List<String> getAppsWhitelist(byte[] pubKey, ASCaller caller) throws Exception; 1448 1449 /** 1450 * <div class="zh">设置应用白名单,会覆盖之前的应用白名单。白名单中的应用不能卸载。</div> 1451 * <div class="en">Setting the application whitelist, overrides previous application whitelist. Whitelist applications cannot be uninstalled.</div> 1452 * 1453 * @param pubKey <div class="zh">经过PAX签名的公钥。</div> <div class="en">Public key signed by PAX.</div> 1454 * @param whitlist <div class="zh">应用白名单。格式如下: 1455 * <xmp><whitelist><whitelistitems name="WhiteListName"><item>pkg_name1</item><item>pkg_name2</item> ... </whitelistitems></whitelist></xmp> 1456 * 列表按照上边格式生成后,需要百富应用签名。</div> 1457 * <div class="en">The application whitelist. Format as follows: 1458 * <xmp><whitelist><whitelistitems name="WhiteListName"><item>pkg_name1</item><item>pkg_name2</item> ... </whitelistitems></whitelist></xmp> 1459 * After the list is generated in the above format, it needs to be signed by the PAX application signature.</div> 1460 * @param caller <div class="zh">高级权限接口的回调。{@link ASCaller}</div> 1461 * <div class="en">Callbacks to the advanced interfaces. see {@link ASCaller}</div> 1462 * @throws Exception 1463 * @since V3.19.00 1464 */ 1465 void setAppsWhitelist(byte[] pubKey, byte[] whitlist, ASCaller caller) throws Exception; 1466 1467 /** 1468 * <div class="zh">文件验签。</div> <div class="en">Verify the file signature.</div> 1469 * 1470 * @param pukType <div class="zh"> 1471 * <ul> 1472 * <li>1:传统应用签名。</li> 1473 * </ul> 1474 * </div> 1475 * <div class="en"> 1476 * <ul> 1477 * <li>1:Traditional application signatures.</li> 1478 * </ul> 1479 * </div> 1480 * @param fileAbsPath <div class="zh">文件绝对路径。</div> <div class="en">The absolute path to the file.</div> 1481 * @return <div class="zh"> 1482 * <ul> 1483 * <li>true:验签通过。</li> 1484 * <li>false:验签失败。</li> 1485 * </ul> 1486 * </div> 1487 * <div class="en"> 1488 * <ul> 1489 * <li>true:Validation passed.</li> 1490 * <li>false:Validation failed.</li> 1491 * </ul> 1492 * </div> 1493 * @throws Exception 1494 * @since V3.19.00 1495 */ 1496 boolean verifySign(int pukType, String fileAbsPath) throws Exception; 1497 1498 /** 1499 * <div class="zh">启用Wi-Fi使用DHCP连接。</div> 1500 * <div class="en">Enable Wi-Fi using DHCP connection.</div> 1501 * 1502 * @return <div class="zh">true:成功; false:失败。</div> <div class="en">True: success; False: failure.</div> 1503 * @throws Exception 1504 * @since V3.19.00 1505 */ 1506 boolean enableWiFiDHCP() throws Exception; 1507 1508 /** 1509 * <div class="zh">设置Launcher。</div> <div class="en">Set the launcher.</div> 1510 * 1511 * @param packageName <div class="zh">应用包名。</div> <div class="en">Application package name.</div> 1512 * @param activityName <div class="zh">{Activity包名}.{Activity名称}。</div> <div class="en">{Activity package name}.{Activity name}.</div> 1513 * @param unconditional <div class="zh"> 1514 * <ul> 1515 * <li>true:启动Launcher。</li> 1516 * <li>false:弹出Launcher选择框。</li> 1517 * </ul> 1518 * </div> 1519 * <div class="en"> 1520 * <ul> 1521 * <li>true:Start the Launcher.</li> 1522 * <li>false:Pop up the Launcher selection box.</li> 1523 * </ul> 1524 * </div> 1525 * @throws Exception 1526 * @since V3.19.00 1527 */ 1528 void setLauncher(String packageName, String activityName, boolean unconditional) throws Exception; 1529 1530 /** 1531 * <div class="zh">自定义快捷键跳转到 action 指定的界面。</div> 1532 * <div class="en">Customize the shortcut key to jump to the specified action interface.</div> 1533 * 1534 * @param action <div class="zh">要启动的Activity的Action。 1535 * <ul> 1536 * <li> 举例: </li> 1537 * <li> android.settings.INTERNAL_STORAGE_SETTINGS 打开存储菜单 </li> 1538 * <li> android.settings.LOCATION_SOURCE_SETTINGS 打开位置信息菜单 </li> 1539 * </ul> 1540 * </div> 1541 * <div class="en">The Action of the Activity to start. 1542 * <ul> 1543 * <li> example: </li> 1544 * <li> android.settings.INTERNAL_STORAGE_SETTINGS Open store menu </li> 1545 * <li> android.settings.LOCATION_SOURCE_SETTINGS The location information menu </li> 1546 * </ul> 1547 * </div> 1548 * @throws Exception 1549 * @since V3.19.00 1550 */ 1551 void setShortcutAction(String action) throws Exception; 1552 1553 /** 1554 * <div class="zh">获取客户资源包版本。</div> <div class="en">Get the customer resource version.</div> 1555 * 1556 * @return <div class="zh">资源包版本。</div> <div class="en">Resource version</div> 1557 * @throws Exception 1558 * @since V3.19.00 1559 */ 1560 String getCustomerResVer() throws Exception; 1561 1562 /** 1563 * <div class="zh">开启或关闭定位服务。</div> <div class="en">Turn location services on or off.</div> 1564 * @param enable <div class="zh"> 1565 * <ul> 1566 * <li>True:开启。</li> 1567 * <li>False:关闭。</li> 1568 * </ul> 1569 * </div> 1570 * <div class="en"> 1571 * <ul> 1572 * <li>True:Turn on.</li> 1573 * <li>False:Turn off.</li> 1574 * </ul> 1575 * </div> 1576 * @throws Exception 1577 * @since V3.19.00 1578 */ 1579 void enableLocation(boolean enable) throws Exception; 1580 1581 /** 1582 * <div class="zh">重置网络设置。包括:Wi-Fi,移动数据,蓝牙。</div> 1583 * <div class="en">Reset network settings. Including: Wi-Fi, mobile data, Bluetooth.</div> 1584 * 1585 * @throws Exception 1586 * @since V3.20.00 1587 */ 1588 void resetNetworkSettings() throws Exception; 1589 1590 /** 1591 * <div class="zh">设置应用是否可用。</div> <div class="en">Set whether the app is available. Only Unicom customers are supported.</div> 1592 * 1593 * @param packageName <div class="zh">应用包名。</div> <div class="en">Application package name.</div> 1594 * @param enable <div class="zh">true: PackageManager.COMPONENT_ENABLED_STATE_ENABLED ; false:PackageManager.COMPONENT_ENABLED_STATE_DISABLED。</div> 1595 * <div class="en">true: PackageManager.COMPONENT_ENABLED_STATE_ENABLED ; false:PackageManager.COMPONENT_ENABLED_STATE_DISABLED。</div> 1596 * @throws Exception 1597 * @since V3.20.00 1598 */ 1599 void enableApplication(String packageName, boolean enable) throws Exception; 1600 1601 /** 1602 * <div class="zh">使能百富授权。</div> <div class="en">Enable PAX authorization.</div> 1603 * 1604 * @param enable <div class="zh">true:可用; false:不可用。</div> <div class="en">True: enable; false: disable.</div> 1605 * @throws Exception 1606 * @since V3.22.00 1607 */ 1608 void enableAuthDownload(boolean enable) throws Exception; 1609 1610 /** 1611 * <div class="zh">获取读卡器拦截器的版本。</div> <div class="en">Gets the version of the reader interceptor.</div> 1612 * 1613 * @return <div class="zh">读卡器拦截器的版本。</div> <div class="en">The version of the reader interceptor.</div> 1614 * @throws Exception 1615 * @since V3.22.00 1616 */ 1617 String getInterceptorVersion() throws Exception; 1618 1619 /** 1620 * <div class="zh">设置开机动画。注意:必须有固件签名。</div> <div class="en">Set boot animation. Note: Must have firmware signature.</div> 1621 * 1622 * @param filePath <div class="zh">开机动画资源文件的路径。</div> <div class="en">The path of the boot animation resource file.</div> 1623 * @throws Exception 1624 * @since V3.23.00 1625 */ 1626 void setBootAnimation(String filePath) throws Exception; 1627 1628 /** 1629 * <div class="zh">设置开机Logo。注意:必须有固件签名。</div> <div class="en">Set the boot logo. Note: Must have firmware signature.</div> 1630 * 1631 * @param filePath <div class="zh">开机Logo资源文件的路径。</div> <div class="en">The path of the boot logo resource file.</div> 1632 * @throws Exception 1633 * @since V3.23.00 1634 */ 1635 void setBootLogo(String filePath) throws Exception; 1636 1637 /** 1638 * <div class="zh">禁用或者启用短按电源键熄屏。设备重启恢复默认。</div> 1639 * <div class="en">Disable or enable short press the power button to turn off the screen. The device restarts to restore the default.</div> 1640 * 1641 * @param enable <div class="zh"> 1642 * <ul> 1643 * <li>true:短按电源键熄屏。默认。</li> 1644 * <li>false:短按电源键不熄屏。</li> 1645 * </ul> 1646 * </div> 1647 * <div class="en"> 1648 * <ul> 1649 * <li>true: Short press the power button to turn off the screen. default.</li> 1650 * <li>false:Short press the power button does not turn off the screen.</li> 1651 * </ul> 1652 * </div> 1653 * @throws Exception 1654 * @since V3.23.00 1655 */ 1656 void enableShortPressPowerKey(boolean enable) throws Exception; 1657 1658 /** 1659 * <div class="zh">设置以太网共享网络功能是否可用。需重启设备才能生效。</div> 1660 * <div class="en">Set whether the Ethernet shared network function is available. Need to restart the device to take effect.</div> 1661 * 1662 * @param enable <div class="zh">true:可用; false:不可用。</div> <div class="en">True: enable; false: disable.</div> 1663 * @throws Exception 1664 * @since V3.24.00 1665 */ 1666 void enableEthernetTether(boolean enable) throws Exception; 1667 1668 /** 1669 * <div class="zh">设置时间24小时制。</div> <div class="en">Set time 24-hour clock.</div> 1670 * 1671 * @param is24Hour <div class="zh">true: 24小时; false: 12小时。</div> <div class="en">true: 24 hours; false: 12 hours.</div> 1672 * 1673 * @return <div class="zh">true: 设置成功; false: 设置失败。</div> <div class="en">true: success; false: failure.</div> 1674 * @since V3.24.00 1675 */ 1676 boolean set24Hour(boolean is24Hour); 1677 1678 /** 1679 * <div class="zh">禁用或者启用底座USB切换。</div> <div class="en">Disable or enable base USB switching.</div> 1680 * 1681 * @param enable <div class="zh"> 1682 * <ul> 1683 * <li>true:切换。默认。</li> 1684 * <li>false:不切换。</li> 1685 * </ul> 1686 * </div> 1687 * <div class="en"> 1688 * <ul> 1689 * <li>true: Switch. default.</li> 1690 * <li>false: Don't switch.</li> 1691 * </ul> 1692 * </div> 1693 * @throws Exception 1694 * @since V3.24.00 1695 */ 1696 void enableBaseUsb(boolean enable) throws Exception; 1697 1698 /** 1699 * <div class="zh">写入应用签名或固件签名的文件。注意:写入的文件需要符合CustomerResConfig给出的规范, 1700 * 且有应用签名或固件签名,写入文件成功后, 配合资源包使用, 重启机器, 即可让xml文件中的需求生效。</div> 1701 * <div class="en">Write application signature or firmware signature file. 1702 * Note: The written file needs to conform to the specifications given by CustomerResConfig 1703 * and has an application signature or firmware signature. After the file is successfully written, 1704 * use it with the resource package and restart the machine to make the requirements 1705 * in the xml file take effect.</div> 1706 * 1707 * @param filePath <div class="zh">文件路径。</div> <div class="en">File path.</div> 1708 * @throws Exception 1709 * @since V3.24.00 1710 */ 1711 void writeCustomerResConfig(String filePath) throws Exception; 1712 1713 /** 1714 * <div class="zh">开启Wi-Fi热点。</div> <div class="en">Turn on the Wi-Fi hotspot.</div> 1715 * 1716 * @param ssid <div class="zh">热点名称。传null则代表只打开热点,不更新参数。</div> 1717 * <div class="en">Hotspot name. Passing null means that only the hotspot is turned on and the parameters are not updated.</div> 1718 * @param preShareKey <div class="zh">热点密码。</div> <div class="en">Hotspot password.</div> 1719 * @param keyManagement <div class="zh">热点安全性类型。 1720 * <ul> 1721 * <li>0: NONE</li> 1722 * <li>1: WPA_PSK </li> 1723 * <li>2: WPA_EAP </li> 1724 * <li>3: IEEE8021X</li> 1725 * <li>4: WPA2_PSK </li> 1726 * </ul> 1727 * </div> 1728 * <div class="en">Hotspot security type. 1729 * <ul> 1730 * <li>0: NONE</li> 1731 * <li>1: WPA_PSK </li> 1732 * <li>2: WPA_EAP </li> 1733 * <li>3: IEEE8021X</li> 1734 * <li>4: WPA2_PSK </li> 1735 * </ul> 1736 * </div> 1737 * @return <div class="zh">True: 成功。False:失败。</div> <div class="en">True: success. False: failed.</div> 1738 * @since V3.25.00 1739 */ 1740 boolean turnOnWiFiHotspot(String ssid, String preShareKey, int keyManagement); 1741 1742 /** 1743 * <div class="zh">关闭Wi-Fi热点。</div> <div class="en">Turn off the Wi-Fi hotspot.</div> 1744 * 1745 * @return <div class="zh">True: 成功。False:失败。</div> <div class="en">True: success. False: failed.</div> 1746 * @since V3.25.00 1747 */ 1748 boolean turnOffWiFiHotspot(); 1749 1750 /** 1751 * <div class="zh">获取Wi-Fi热点状态。</div> <div class="en">Get Wi-Fi hotspot status.</div> 1752 * 1753 * @return <div class="zh">1:开启。0:关闭。</div> <div class="en">1: Turn on. 0: Turn off.</div> 1754 * @since V3.25.00 1755 */ 1756 int getWiFiHotspotStatus(); 1757 1758 /** 1759 * <div class="zh">控制充电控制机制。开启该机制后,充电范围控制在15%-35%,电量低于15%复充,超过35%停止。</div> 1760 * <div class="en">Control the charging limit. After it is turned on, the charging range is controlled at 15%-35%, 1761 * charging starts when the power is below 15%, and charging stops when the power exceeds 35%. </div> 1762 * 1763 * @param limit <div class="zh">true:打开该机制。false:关闭该机制。</div> <div class="en">true: Turn on. false: Turn off.</div> 1764 * @since V3.26.00 1765 */ 1766 void setChargeLimit(boolean limit) throws Exception; 1767 1768 /** 1769 * <div class="zh">设置NTP服务器和超时时间。需在AndroidManifest中添加权限:"com.pax.permission.NTP"。</div> 1770 * <div class="en">Set NTP server and timeout. Need to add permission in AndroidManifest: "com.pax.permission.NTP".</div> 1771 * 1772 * @param param {@link NtpServerParam} 1773 * 1774 * @return <div class="zh">成功:true<br>失败:false</div> <div class="en">Success: true <br>Failure: false</div> 1775 * @throws Exception 1776 * @since V3.26.00 1777 */ 1778 boolean setNTPServerParam(NtpServerParam param) throws Exception; 1779 1780 /** 1781 * <div class="zh">获取NTP服务器和超时时间。需在AndroidManifest中添加权限:"com.pax.permission.NTP"。</div> 1782 * <div class="en">Get NTP server and timeout. Need to add permission in AndroidManifest: "com.pax.permission.NTP".</div> 1783 * 1784 * @return {@link NtpServerParam} 1785 * @throws Exception 1786 * @since V3.26.00 1787 */ 1788 NtpServerParam getNTPServerParam() throws Exception; 1789 1790 /** 1791 * <div class="zh">设置低电量提醒框。</div> <div class="en">Set low battery reminder box.</div> 1792 * 1793 * @param enabled <div class="zh">是否开启 1794 * <br/>true: 表示开启 1795 * <br/>false: 表示关闭</div> 1796 * <div class="en">Whether to open 1797 * <br/>true: open 1798 * <br/>false: close</div> 1799 * @throws Exception 1800 * @since V3.28.00 1801 */ 1802 void enableBatterySaverPrompt(boolean enabled) throws Exception; 1803 1804 /** 1805 * <div class="zh">强制设备进入休眠状态。</div> <div class="en">Force the device to sleep.</div> 1806 * 1807 * @throws Exception 1808 * @since V3.29.00 1809 */ 1810 void goToSleep() throws Exception; 1811 1812 /** 1813 * <div class="zh">设置GPS定位模式。</div> <div class="en">Set GPS positioning mode.</div> 1814 * 1815 * @param mode <div class="zh">定位模式 1816 * <ul> 1817 * <li>1.仅限设备</li> 1818 * <li>2.低耗电量</li> 1819 * <li>3.高精确度</li> 1820 * </ul></div> 1821 * <div class="en">positioning mode 1822 * <ul> 1823 * <li>1. Device only</li> 1824 * <li>2. Low power consumption</li> 1825 * <li>3. High precision</li> 1826 * </ul></div> 1827 * @return <div class="zh">成功时返回true,失败时返回false </div> 1828 * <div class="en">Returns true on success, false on failure</div> 1829 * @throws Exception 1830 * @since V3.29.00 1831 */ 1832 boolean setLocationMode(int mode) throws Exception; 1833 1834 /** 1835 * <div class="zh">获取安全相关的版本信息。</div> <div class="en">Get security-related version information.</div> 1836 * 1837 * @return <div class="zh"> 1838 * <table border="1"> 1839 * <tr> 1840 * <th>KEY名称</th> 1841 * <th>类型</th> 1842 * <th>说明</th> 1843 * </tr> 1844 * <tr> 1845 * <th>pciver</th> 1846 * <th>String</th> 1847 * <th>PCI Version</th> 1848 * </tr> 1849 * <tr> 1850 * <th>secver</th> 1851 * <th>String</th> 1852 * <th>Security Version</th> 1853 * </tr> 1854 * <tr> 1855 * <th>firmver</th> 1856 * <th>String</th> 1857 * <th>Firmware Version</th> 1858 * </tr> 1859 * </table> 1860 * </div> 1861 * <div class="en"> 1862 * <table border="1"> 1863 * <tr> 1864 * <th>KEY</th> 1865 * <th>type</th> 1866 * <th>Description</th> 1867 * </tr> 1868 * <tr> 1869 * <th>pciver</th> 1870 * <th>String</th> 1871 * <th>PCI Version</th> 1872 * </tr> 1873 * <tr> 1874 * <th>secver</th> 1875 * <th>String</th> 1876 * <th>Security Version</th> 1877 * </tr> 1878 * <tr> 1879 * <th>firmver</th> 1880 * <th>String</th> 1881 * <th>Firmware Version</th> 1882 * </tr> 1883 * </table> 1884 * </div> 1885 * @throws Exception 1886 * @since V3.29.00 1887 */ 1888 Bundle getSecurityInfo() throws Exception; 1889 1890 1891 /** 1892 * <div class="zh">开启Wi-Fi热点。</div> <div class="en">Turn on the Wi-Fi hotspot.</div> 1893 * 1894 * @param ssid <div class="zh">热点名称。传null则代表只打开热点,不更新参数。</div> 1895 * <div class="en">Hotspot name. Passing null means that only the hotspot is turned on and the parameters are not updated.</div> 1896 * @param preShareKey <div class="zh">热点密码。</div> <div class="en">Hotspot password.</div> 1897 * @param keyManagement <div class="zh">热点安全性类型。 1898 * <ul> 1899 * <li>0: NONE</li> 1900 * <li>1: WPA_PSK </li> 1901 * <li>2: WPA_EAP </li> 1902 * <li>3: IEEE8021X</li> 1903 * <li>4: WPA2_PSK </li> 1904 * </ul> 1905 * </div> 1906 * <div class="en">Hotspot security type. 1907 * <ul> 1908 * <li>0: NONE</li> 1909 * <li>1: WPA_PSK </li> 1910 * <li>2: WPA_EAP </li> 1911 * <li>3: IEEE8021X</li> 1912 * <li>4: WPA2_PSK </li> 1913 * </ul> 1914 * </div> 1915 * @param channel <div class="zh">信道 1916 * <ul> 1917 * <li>自动选择信道:0</li> 1918 * <li>2.4G信道:1-11</li> 1919 * <li>5G信道:36,40,44,48,149,153,157,161,165</li> 1920 * </ul></div> 1921 * <div class="en">Channel 1922 * <ul> 1923 * <li>Auto select channel: 0</li> 1924 * <li>2.4G channel: 1-11</li> 1925 * <li>5G channels: 36, 40, 44, 48, 149, 153, 157, 161, 165</li> 1926 * </ul></div> 1927 * @return <div class="zh">True: 成功。False:失败。</div> <div class="en">True: success. False: failed.</div> 1928 * @throws Exception 1929 * @since V3.30.00 1930 */ 1931 boolean turnOnWiFiHotspot(String ssid, String preShareKey, int keyManagement, int channel) throws Exception; 1932 1933 /** 1934 * <div class="zh">获取屏幕亮度</div> <div class="en">get screen brightness</div> 1935 * 1936 * @return <div class="zh">当前屏幕亮度</div> <div class="en">Current screen brightness</div> 1937 * @since V3.30.00 1938 */ 1939 int getScreenBrightness() throws Exception; 1940 1941 /** 1942 * <div class="zh">使能大容量存储器挂载。</div> <div class="en">Enable mass storage mounts.</div> 1943 * 1944 * @param enable <div class="zh">是否启用 1945 * <br/>true: 表示启用挂载 1946 * <br/>false: 表示禁用挂载</div> 1947 * <div class="en">Whether to enable 1948 * <br/>true: enable mount 1949 * <br/>false: disable mount</div> 1950 * @throws Exception 1951 * @since V3.29.00 1952 */ 1953 void enableMassStorage(boolean enable) throws Exception; 1954 1955 /** 1956 * <div class="zh">设置ECM静态IP(设备必须已经是"USB ECM网络共享模式")。</div> <div class="en">Set ECM static IP (device must already be in "USB ECM tethering mode").</div> 1957 * 1958 * @param ipAddress <div class="zh">IP地址 </div> <div class="en">IP address</div> 1959 * @param networkPrefixLength <div class="zh">网络前缀长度 </div> <div class="en">network prefix length</dic> 1960 * 1961 * @return <div class="zh">true: 设置成功, false: 设置失败 </div> <div class="en">true: set successfully, false: set failed</div> 1962 * @throws Exception 1963 * @since V3.30.00 1964 */ 1965 boolean setEcmStaticIP(String ipAddress, int networkPrefixLength) throws Exception; 1966 1967 /** 1968 * <div class="zh">获取ECM静态IP。</div> <div class="en">Get ECM static IP.</div> 1969 * 1970 * @return <div class="zh">静态IP</div> <div class="en">static IP</div> 1971 * @throws Exception 1972 * @since V3.30.00 1973 */ 1974 String getEcmStaticIP() throws Exception; 1975 1976 /** 1977 * <div class="zh">锁定终端。</div> <div class="en">lock the terminal.</div> 1978 * 1979 * @param pubKey <div class="zh">经过PAX签名的公钥。</div> <div class="en">Public key signed by PAX.</div> 1980 * @param caller <div class="zh">高级权限接口的回调。{@link ASCaller}</div> 1981 * <div class="en">Callbacks to the advanced interfaces. see {@link ASCaller}</div> 1982 * @throws Exception 1983 * @since V3.30.00 1984 */ 1985 void lockTerminal(byte[] pubKey, ASCaller caller) throws Exception; 1986 1987 1988 /** 1989 * <div class="zh">解锁终端。</div> <div class="en">unlock the terminal.</div> 1990 * 1991 * @param pubKey <div class="zh">经过PAX签名的公钥。</div> <div class="en">Public key signed by PAX.</div> 1992 * @param caller <div class="zh">高级权限接口的回调。{@link ASCaller}</div> 1993 * <div class="en">Callbacks to the advanced interfaces. see {@link ASCaller}</div> 1994 * @throws Exception 1995 * @since V3.30.00 1996 */ 1997 void unlockTerminal(byte[] pubKey, ASCaller caller) throws Exception; 1998 1999 2000 /** 2001 * <div class="zh">查询终端锁定的状态。</div> <div class="en">get the lock status of a terminal.</div> 2002 * 2003 * @param pubKey <div class="zh">经过PAX签名的公钥。</div> <div class="en">Public key signed by PAX.</div> 2004 * @param caller <div class="zh">高级权限接口的回调。{@link ASCaller}</div> 2005 * <div class="en">Callbacks to the advanced interfaces. see {@link ASCaller}</div> 2006 * @throws Exception 2007 * @return <div class="zh">终端状态(true:Lock false:unLock) 。</div> <div class="en">terminal status(true:Lock false:unLock) .</div> 2008 * @since V3.30.00 2009 */ 2010 boolean getLockTerminalStatus(byte[] pubKey, ASCaller caller) throws Exception; 2011 2012 /** 2013 * <div class="zh">安装wifi证书,需申请权限"com.pax.permission.WIFICERT_INSTALL"。 2014 * </div> <div class="en">To install the wifi certificate, add the following permissions under AndroidManifest :"com.pax.permission.WIFICERT_INSTALL".</div> 2015 * 2016 * @param cert <div class="zh">证书数据,需要签名 </div> 2017 * <div class="en">Certificate data, needs to be signed</div> 2018 * @param certName <div class="zh">证书名称 </div> <div class="en">Certificate name</div> 2019 * @param isP12 <div class="zh">是否是pkcs12格式 </div> <div class="en">Is it in pkcs12 format</div> 2020 * @param certPwd <div class="zh">如果是pkcs12格式,需指定密码 </div> <div class="en">If it is in pkcs12 format, you need to specify the password</div> 2021 * @return <div class="zh">true:成功 false:失败 </div> 2022 * <div class="en">true: success false: failure</div> 2023 * @throws Exception 2024 * @since V3.30.00 2025 */ 2026 boolean installWifiCertificate(byte[] cert, String certName, boolean isP12, String certPwd) throws Exception; 2027 2028 /** 2029 * <div class="zh">设置24小时重启的时间点<br/> 2030 * 当调用接口设置一个新的重启时间点后,会立刻生效,按更新的设置时间点重启。</div> 2031 * <div class="en">Set a 24-hour reboot time<br/> 2032 * When calling the interface to set a new restart time point, it will take effect immediately, and restart according to the updated set time point.</div> 2033 * 2034 * @param time <div class="zh">重启的时间点,24小时制,格式为hh:mm:ss,个位数需在前补0,例如08:30:00 </div> 2035 * <div class="en">The reboot time, 24-hour format, the format is hh:mm:ss, 2036 * the single digit needs to be filled with 0, such as 08:30:00</div> 2037 * @throws Exception 2038 * @since V3.31.00 2039 */ 2040 void setRebootTime(String time) throws Exception; 2041 2042 /** 2043 * <div class="zh">获取屏幕自动旋转状态</div> 2044 * <div class="en">Gets the automatic screen rotation status.</div> 2045 * 2046 * @return <div class="zh">true:自动旋转屏幕开启 false:自动旋转屏幕关闭 </div> 2047 * <div class="en">true: automatic screen rotation is enabled false: automatic screen rotation is disabled</div> 2048 * @throws Exception 2049 * @since V3.32.00 2050 */ 2051 boolean isAutomaticRotation() throws Exception; 2052 2053 /** 2054 * <div class="zh">设置屏幕自动旋转</div> 2055 * <div class="en">Set automatic screen rotation</div> 2056 * 2057 * @param isAutomaticRotation <div class="zh">true:开启屏幕自动旋转 - false:关闭屏幕自动旋转 </div> 2058 * <div class="en">true: enables automatic screen rotation. - false: disables automatic screen rotation</div> 2059 * 2060 * @return <div class="zh">true:成功 false:失败 </div> 2061 * <div class="en">true: succeeds. false: fails</div> 2062 * @throws Exception 2063 * @since V3.32.00 2064 */ 2065 boolean setAutomaticRotation(boolean isAutomaticRotation) throws Exception; 2066 2067 /** 2068 * <div class="zh">设置固定时间点重启</div> 2069 * <div class="en">Enable or disable reboot at a fixed time</div> 2070 * 2071 * @param enable <div class="zh">true:开启固定时间点重启 false:关闭固定时间点重启 </div> 2072 * <div class="en">true: enables the reboot at a fixed time. false: disables the reboot at a fixed time</div> 2073 * @throws Exception 2074 * @since V3.32.00 2075 */ 2076 void setRebootTimeEnable(boolean enable) throws Exception; 2077 2078 /** 2079 * <div class="zh">关闭开启系统截图功能。</div> 2080 * <div class="en">Disable or enable the system screenshot function.</div> 2081 * 2082 * @param enable <div class="zh">true:开启系统截图 false:关闭系统截图 </div> 2083 * <div class="en">true: enable system screenshot. false: disable system screenshot</div> 2084 * @throws Exception 2085 * @since V3.32.00 2086 */ 2087 void enableScreenshot(boolean enable) throws Exception; 2088 2089 /** 2090 * <div class="zh">更新设备的时区数据<br/> 2091 * 注意:调用后需重启设备才能生效。</div> 2092 * <div class="en">Update the time zone data of the device<br/> 2093 * Note: The call takes effect only after the device is restarted.</div> 2094 * 2095 * @param filePath <div class="zh">时区数据库的路径 </div> 2096 * <div class="en">Path to the time zone database</div> 2097 * @throws Exception 2098 * @since V3.32.00 2099 */ 2100 void updateSystemTimeZoneData(String filePath) throws Exception; 2101 2102 2103 /** 2104 * <div class="zh">使用客制化关机界面</div> 2105 * <div class="en">Use the customized power off UI</div> 2106 * 2107 * @param enable <div class="zh">true:开启 false:关闭 </div> 2108 * <div class="en">true: enable false: disable</div> 2109 * @throws Exception 2110 * @since V3.32.00 2111 */ 2112 void showCustomizedPowerOffUI(boolean enable) throws Exception; 2113 2114 /** 2115 * <div class="zh">获取24小时重启的时间点</div> 2116 * <div class="en">Get a 24-hour reboot time</div> 2117 * 2118 * @return <div class="zh">重启时间点</div> 2119 * <div class="en">reboot time</div> 2120 * @throws Exception 2121 * @since V3.32.00 2122 */ 2123 String getRebootTime() throws Exception; 2124 2125 /** 2126 * <div class="zh">设置终端信息收集</div> 2127 * <div class="en">Set terminal information collection</div> 2128 * 2129 * @param enable <div class="zh">true:表示开启 false:表示关闭 </div> 2130 * <div class="en">true: enable false: disable</div> 2131 * @throws Exception 2132 * @since V3.32.00 2133 */ 2134 void setInfoCollect(boolean enable) throws Exception; 2135 2136 /** 2137 * <div class="zh">获取短按电源键是否被禁用</div> 2138 * <div class="en">Gets whether short press of the power button is disabled</div> 2139 * 2140 * @return <div class="zh">true表示禁用短按电源键不熄屏,false表示开启短按电源键可以熄屏。 </div> 2141 * <div class="en">true: disables the power button to turn off the screen. 2142 * false: enables the power button to turn off the screen.</div> 2143 * @throws Exception 2144 * @since V3.32.00 2145 */ 2146 boolean isShortPressPowerKeyDisabled() throws Exception; 2147 2148 /** 2149 * <div class="zh">设置是否加载最近任务列表<br/> 2150 * 若设置为加载,则设备重启后可显示关机前的任务记录。若设置为不加载,则显示为空</div> 2151 * <div class="en">Set whether to load the recent task list<br/> 2152 * If set to load, the task records before shutdown are displayed after the device is restarted. If it is set to not load, it is empty. 2153 * </div> 2154 * 2155 * @param enable <div class="zh">true 表示加载(默认), false 表示不加载</div> 2156 * <div class="en">true means load (default), false means not load</div> 2157 * @throws Exception 2158 * @since V3.33.00 2159 */ 2160 void setLoadRecentTasks(boolean enable) throws Exception; 2161 2162 /** 2163 * <div class="zh">设置字体大小</div> 2164 * <div class="en">Set font size</div> 2165 * 2166 * @param font <div class="zh">0:小 1:默认(正常) 2:大 3:最大 </div> 2167 * <div class="en">0: small 1: default (normal) 2: large 3: largest</div> 2168 * @throws Exception 2169 * @since V3.33.00 2170 */ 2171 void setFontScale(int font) throws Exception; 2172 2173 /** 2174 * <div class="zh">获取是否自动调节亮度模式</div> 2175 * <div class="en">Get whether to automatically adjust brightness mode</div> 2176 * 2177 * @return <div class="zh">true:自动亮度模式,false:手动模式</div> 2178 * <div class="en">true: automatic brightness mode, false: manual mode</div> 2179 * @throws Exception 2180 * @since V3.33.00 2181 */ 2182 boolean isAutomaticBrightness() throws Exception; 2183 2184 /** 2185 * <div class="zh">设置自动调节亮度模式</div> 2186 * <div class="en">Set the automatic brightness mode</div> 2187 * 2188 * @param isAutomatic <div class="zh">true:自动亮度模式,false:手动模式</div> 2189 * <div class="en">true: automatic brightness mode, false: manual mode</div> 2190 * @throws Exception 2191 * @since V3.33.00 2192 */ 2193 void setBrightnessMode(boolean isAutomatic) throws Exception; 2194 2195 /** 2196 * <div class="zh">获取系统默认桌面包名</div> 2197 * <div class="en">Get the system default launcher package name</div> 2198 * 2199 * @throws Exception 2200 * @since V4.00.00 2201 */ 2202 String getDefaultLauncherPackageName() throws Exception; 2203 2204 /** 2205 * <div class="zh">获取系统默认桌面的Activity的名字。</div> 2206 * <div class="en">Get the system default launcher activity name</div> 2207 * 2208 * @throws Exception 2209 * @since V4.00.00 2210 */ 2211 String getDefaultLauncherActivityName() throws Exception; 2212 2213 /** 2214 * <div class="zh">设置允许系统启动“默认桌面”,而不弹出选择对话框,即使有几个桌面。</div> 2215 * <div class="en">Set startup "Default Launcher".</div> 2216 * 2217 * @param unconditional <div class="zh">true表示进入默认桌面而没有弹出选择对话框</div> 2218 * <div class="en:>true means to enter the default launcher without popping up the selection dialog</div> 2219 * @throws Exception 2220 * @since V4.00.00 2221 */ 2222 void setDefaultLauncher(boolean unconditional) throws Exception; 2223 2224 /** 2225 * <div class="zh">蜂鸣器立即发出一声“嘀”,持续时间为 100ms。</div> 2226 * <div class="en">The buzzer immediately emits a "beep" for 100ms.</div> 2227 * 2228 * @since V4.01.00 2229 */ 2230 void beep(); 2231 2232 /** 2233 * <div class="zh">屏蔽关机菜单中的紧急拨号功能。</div> 2234 * <div class="en">Block the emergency dial function in the shutdown menu.</div> 2235 * 2236 * @param disable <div class="zh">true 表示屏蔽, false 表示不屏蔽</div> 2237 * <div class="en">true means blocking, false means not blocking</div> 2238 * @since V4.02.00 2239 * @throws Exception 2240 */ 2241 void disableEmergency(boolean disable) throws Exception; 2242 2243 /** 2244 * <div class="zh">屏蔽关机菜单中的系统截图功能。</div> 2245 * <div class="en">Block the system screenshot function in the shutdown menu.</div> 2246 * 2247 * @param disable <div class="zh">true 表示屏蔽, false 表示不屏蔽</div> 2248 * <div class="en">true means blocking, false means not blocking</div> 2249 * @since V4.02.00 2250 * @throws Exception 2251 */ 2252 void disableScreenshot(boolean disable) throws Exception; 2253 2254 /** 2255 * <div class="zh">设置监听应用。</div> 2256 * <div class="en">Set application switch listener.</div> 2257 * 2258 * @param isOpen <div class="zh">true:打开服务 false:关闭服务</div> 2259 * <div class="en">true: open the service false: close the service</div> 2260 * @param listener <div class="zh">{@link IAppSwitchListener} 注: true时,listener不能为null. </div> 2261 * <div class="en">{@link IAppSwitchListener} Note: When true, listener cannot be null.</div> 2262 * @since V4.03.00 2263 * @throws Exception 2264 */ 2265 void setAppSwitchListener(boolean isOpen, IAppSwitchListener listener) throws Exception; 2266 2267 /** 2268 * <div class="zh">设置显示大小。</div> 2269 * <div class="en">Set display size.</div> 2270 * 2271 * @param mode <div class="zh">0:小 1:默认(正常) 2:大 其它值:非法 </div> 2272 * <div class="en">0: Small 1: Default (normal) 2: Large Other values: illegal</div> 2273 * @since V4.03.00 2274 * @throws Exception 2275 */ 2276 void setDisplaySize(int mode) throws Exception; 2277 2278 /** 2279 * <div class="zh">设置Reboot重启模式。</div> 2280 * <div class="en">Set reboot mode.</div> 2281 * 2282 * @param mode <div class="zh">1: 48小时重启 </div> 2283 * <div class="en">1: reboot in 48 hours</div> 2284 * @since V4.05.00 2285 * @throws Exception 2286 */ 2287 void setRebootMode(byte mode) throws Exception; 2288 2289 /** 2290 * <div class="zh">获取定时重启开关的状态</div> 2291 * <div class="en">Get the status of the scheduled reboot switch</div> 2292 * 2293 * @return <div class="zh">true:开启定时重启 false:关闭定时重启 </div> 2294 * <div class="en">true: enable scheduled reboot false: disable scheduled reboot</div> 2295 * @throws Exception 2296 * @since V4.05.00 2297 */ 2298 boolean getRebootTimeEnabled() throws Exception; 2299 2300 /** 2301 * <div class="zh">设置usb虚拟以太网配置。</div> 2302 * <div class="en">Set USB virtual Ethernet configuration.</div> 2303 * 2304 * @param iface <div class="zh">ecm0或rndis0或rndis_host0 </div> 2305 * <div class="en">ecm0 or rndis0 or rndis_host0.</div> 2306 * @param param <div class="zh">{@link LanParam}</div> 2307 * <div class="en">{@link LanParam}</div> 2308 * @since V4.05.00 2309 */ 2310 void setUsbVirtualEthConfig(String iface, LanParam param) throws Exception; 2311 2312 /** 2313 * <div class="zh">获取以太网IP地址信息。</div> 2314 * <div class="en">Get USB virtual Ethernet configuration.</div> 2315 * 2316 * @param iface <div class="zh">ecm0或rndis0或rndis_host0 </div> 2317 * <div class="en">ecm0 or rndis0 or rndis_host0.</div> 2318 * 2319 * @return <div class="zh">{@link LanParam}</div> 2320 * <div class="en">{@link LanParam}</div> 2321 * @since V4.05.00 2322 */ 2323 LanParam getUsbVirtualEthConfig(String iface) throws Exception; 2324 2325 /** 2326 * <div class="zh">是否允许关机时接入适配器自动开机。</div> 2327 * <div class="en">Whether to allow the access adapter to turn on automatically when shutdown.</div> 2328 * 2329 * @param disable <div class="zh">true:允许 false:禁止 </div> 2330 * <div class="en">true: allow false: forbid</div> 2331 * @return <div class="zh">true:成功; false:失败。</div> <div class="en">True: success; False: failure.</div> 2332 * @since V4.07.00 2333 * @throws Exception 2334 */ 2335 boolean setChargerScreenDisabled(boolean disable) throws Exception; 2336 2337 /** 2338 * <div class="zh">设置启动应用密码。</div> <div class="en">Set the password for starting the application.</div> 2339 * 2340 * @param pkgName <div class="zh">应用包名。</div> <div class="en">Application package name.</div> 2341 * @param password <div class="zh">密码。</div> 2342 * <div class="en">Password.</div> 2343 * @throws Exception 2344 * @since V4.07.00 2345 */ 2346 void setApplicationNeedPassword(String pkgName,String password) throws Exception; 2347 2348 /** 2349 * <div class="zh">打开或关闭电池管理器</div> 2350 * <div class="en">Turn on or off the battery manager</div> 2351 * 2352 * @param enable <div class="zh"> true:打开 false:关闭 </div> 2353 * <div class="en"> true: enable false: disable </div> 2354 * 2355 * @since V4.07.00 2356 */ 2357 void setBatteryManagerEnable(boolean enable) throws Exception; 2358 2359 /** 2360 * <div class="zh">设置USB tethering的子网。</div> 2361 * <div class="en">Set the subnet for USB tethering.</div> 2362 * 2363 * @param iface <div class="zh"> 0--RNDIS_INTERFACE;1--ECM_INTERFACE </div> 2364 * <div class="en"> 0--RNDIS_INTERFACE;1--ECM_INTERFACE </div> 2365 * @param ip <div class="zh">ip信息</div> <div class="en">IP information</div> 2366 * @since V4.07.00 2367 * @throws Exception 2368 */ 2369 void setTetheringIp(int iface, String ip) throws Exception; 2370 2371 /** 2372 * <div class="zh">获取USB tethering 子网的IP信息。</div> 2373 * <div class="en">Get IP information of USB tethering subnet.</div> 2374 * 2375 * @param iface <div class="zh">0--RNDIS_INTERFACE;1--ECM_INTERFACE </div> 2376 * <div class="en">0--RNDIS_INTERFACE;1--ECM_INTERFACE </div> 2377 * @return <div class="zh">ip信息</div> <div class="en">IP information</div> 2378 * @since V4.07.00 2379 * @throws Exception 2380 */ 2381 String getTetheringIp(int iface) throws Exception; 2382 2383 /** 2384 * <div class="zh">设置是否显示电量百分比。</div> 2385 * <div class="en">Set whether to display battery percentage.</div> 2386 * 2387 * @param enable <div class="zh">true:显示 false:不显示 </div> 2388 * <div class="en">true: display false: do not display.</div> 2389 * 2390 * @since V4.07.00 2391 */ 2392 void enableBatteryLevelShow(boolean enable) throws Exception; 2393 2394 /** 2395 * <div class="zh">设置副屏屏幕亮度。</div> 2396 * <div class="en">Set the screen brightness of the secondary screen.</div> 2397 * 2398 * @param brightness <div class="zh">设置的副屏亮度(范围0-100) </div> 2399 * <div class="en">Secondary screen brightness (range 0-100).</div> 2400 * @throws Exception 2401 * @since V4.07.00 2402 */ 2403 void setSecScreenBrightness(int brightness) throws Exception; 2404 2405 /** 2406 * <div class="zh">获取副屏屏幕亮度。</div> 2407 * <div class="en">Get the screen brightness of the secondary screen.</div> 2408 * 2409 * @return <div class="zh">当前副屏屏幕亮度 </div> 2410 * <div class="en">Current screen brightness of secondary screen.</div> 2411 * @throws Exception 2412 * @since V4.07.00 2413 */ 2414 int getSecScreenBrightness() throws Exception; 2415 2416 /** 2417 * <div class="zh">打开或者关闭设置—电池—更多设置—应用待机优化中的应用优化开关</div> 2418 * <div class="en">Turn on or off Settings - Battery - More Settings - Application Optimization switch in Application Standby Optimization</div> 2419 * 2420 * @param packageName <div class="zh">应用的包名</div> 2421 * <div class="en">The package name of the application</div> 2422 * 2423 * @param on <div class="zh">true表示打开对应应用的优化开关,false表示关闭对应应用的应用优化开关 </div> 2424 * <div class="en">true: Enables the optimization switch of the corresponding application; false: disables the optimization switch of the corresponding application</div> 2425 * 2426 * @since V4.08.00 2427 */ 2428 void setAppPowerSaveConfigWithType(String packageName, boolean on) throws Exception; 2429 2430 /** 2431 * <div class="zh">隐藏关机菜单中的飞行模式</div> 2432 * <div class="en">Hide Airplane Mode in the shutdown menu</div> 2433 * 2434 * @param disable <div class="zh"> true 表示隐藏, false 表示不隐藏 </div> 2435 * <div class="en">true: hides; false: does not hide</div> 2436 * 2437 * @since V4.08.00 2438 */ 2439 void disableGlobalAirPlane(boolean disable) throws Exception; 2440 2441 /** 2442 * <div class="zh">隐藏关机菜单中的响铃功能</div> 2443 * <div class="en">Hide the ringing function in the shutdown menu</div> 2444 * 2445 * @param disable <div class="zh"> true 表示隐藏, false 表示不隐藏 </div> 2446 * <div class="en"> true: hides; false: does not hide </div> 2447 * 2448 * @since V4.08.00 2449 */ 2450 void disableGlobalSilent(boolean disable) throws Exception; 2451 2452 /** 2453 * <div class="zh">禁用或启用Power键长按关机功能</div> 2454 * <div class="en">To disable or enable the power-off function, hold down the Power key</div> 2455 * 2456 * @param disable <div class="zh"> true:禁用Power键长按关机功能 false:开启Power键长按关机功能 </div> 2457 * <div class="en"> true: disables the Power key and hold down. false: disables the Power key and hold down </div> 2458 * 2459 * @since V4.08.00 2460 */ 2461 void setLongPowerKeyDisable(boolean disable) throws Exception; 2462 2463 /** 2464 * <div class="zh">设置充电时是否退出省电模式。</div> 2465 * <div class="en">Set whether to exit the power saving mode during charging.</div> 2466 * 2467 * @param config <div class="zh"> enable - true 退出;false 不退出 </div> 2468 * <div class="en">enable-true Exits. false Do not exit</div> 2469 * 2470 * @return <div class="zh">true 设置成功; false 设置失败 </div> 2471 * <div class="en">true The setting succeeds. false Setting failed</div> 2472 * @since V4.09.00 2473 * @throws Exception 2474 */ 2475 boolean setSmartSavingModeWhenCharging(boolean config) throws Exception; 2476 2477 /** 2478 * <div class="zh">设置是否在状态栏上显示运营商名称 注:重启后生效</div> 2479 * <div class="en">Whether to display the carrier name in the status bar Note: This parameter takes effect after the restart</div> 2480 * 2481 * @param enable <div class="zh"> true 显示;false 隐藏 </div> 2482 * <div class="en"> true Displays; false hide </div> 2483 * 2484 * @since V4.09.00 2485 */ 2486 void showCarrierName(boolean enable) throws Exception; 2487 2488 /** 2489 * <div class="zh">设置是否禁用USB外设。</div> 2490 * <div class="en">Set whether to disable USB peripherals.</div> 2491 * 2492 * @param disable <div class="zh"> true:禁用 立刻生效的 false:开启 重启才生效 </div> 2493 * <div class="en">true: disables the function that takes effect immediately. false: The function takes effect after restart</div> 2494 * @since V4.09.00 2495 * @throws Exception 2496 */ 2497 void setUsbHostDisable(boolean disable) throws Exception; 2498 2499 /** 2500 * <div class="zh">获取是否禁用USB外设的状态。</div> 2501 * <div class="en">Gets the status of whether to disable USB peripherals.</div> 2502 * 2503 * @return <div class="zh">true:禁用 false:开启 </div> 2504 * <div class="en">true: disabled false: enabled</div> 2505 * @since V4.09.00 2506 * @throws Exception 2507 */ 2508 boolean isUsbHostDisabled() throws Exception; 2509 2510 /** 2511 * <div class="zh">设置自动开启 WLAN功能</div> 2512 * <div class="en">The WLAN function is enabled automatically</div> 2513 * 2514 * @param enable <div class="zh">true:开启,false:关闭 </div> 2515 * <div class="en"> true: enable, false: disable </div> 2516 * 2517 * @since V4.09.00 2518 */ 2519 void setWifiWakeupEnabled(boolean enable) throws Exception; 2520 2521 /** 2522 * <div class="zh">获取电池电量百分比开关状态。</div> 2523 * <div class="en">Obtain the battery percentage switch status.</div> 2524 * 2525 * @return <div class="zh">true 表示打开,false 表示关闭 </div> 2526 * <div class="en">true: Enabled, false: disabled.</div> 2527 * @throws Exception 2528 * @since V4.09.00 2529 */ 2530 boolean getShowBatteryLevel() throws Exception; 2531 2532 /** 2533 * <div class="zh">获取屏幕旋转的角度</div> 2534 * <div class="en">Gets the Angle at which the screen rotates</div> 2535 * 2536 * @return <div class="zh">角度值 </div> 2537 * <div class="en">Angular value</div> 2538 * 2539 * @since V4.09.00 2540 */ 2541 int getScreenRotation() throws Exception; 2542 2543 /** 2544 * <div class="zh">设置屏幕旋转角度</div> 2545 * <div class="en">Set the screen rotation Angle</div> 2546 * 2547 * @param rotation <div class="zh">屏幕旋转角度,rotation是90的倍数,如:0、90等. </div> 2548 * <div class="en"> The screen rotation Angle is a multiple of 90, such as 0, 90. </div> 2549 * @return <div class="zh"> true:成功,false:失败</div> 2550 * <div class="en">true: succeeds, false: fails</div> 2551 * @since V4.09.00 2552 */ 2553 boolean setScreenRotation(int rotation) throws Exception; 2554 2555 /** 2556 * <div class="zh">下载客户私钥签名的开机动画,注意:开机动画大小不超过30M</div> 2557 * <div class="en">Download the power-on animation signed by the customer's private key. Note: The size of the power-on animation should not exceed 30M</div> 2558 * 2559 * @param fileName <div class="zh"> 开机动画资源文件的路径 </div> 2560 * <div class="en"> The path to the power-on animation resource file. </div> 2561 * @since V4.10.00 2562 */ 2563 void updateBootAnimation(String fileName) throws Exception; 2564 2565 /** 2566 * <div class="zh">下载客户私钥签名的开机LOGO,注意:开机LOGO大小不超过30M</div> 2567 * <div class="en">Download the startup LOGO signed by the customer's private key,Note: Boot LOGO size does not exceed 30M</div> 2568 * 2569 * @param fileName <div class="zh"> 开机LOGO资源文件的路径 </div> 2570 * <div class="en"> Startup LOGO Specifies the path to the resource file. </div> 2571 * @since V4.10.00 2572 */ 2573 void updateBootLogo(String fileName) throws Exception; 2574 2575 /** 2576 * <div class="zh">更新Setting应用的密码</div> 2577 * <div class="en">Update the password of Setting</div> 2578 * 2579 * @param pubKey <div class="zh"> 公钥 </div> 2580 * <div class="en"> Public key. </div> 2581 * @param sha256 <div class="zh"> 密码对应的Hash值,仅支持sha256 </div> 2582 * <div class="en"> The Hash value corresponding to the password can only be sha256. </div> 2583 * @param caller <div class="zh"> 回调传入私钥加密后的数据 </div> 2584 * <div class="en"> Callback The encrypted data passed into the private key. </div> 2585 * 2586 * @since V4.10.00 2587 */ 2588 void updateSettingsPasswordHashValue(byte[] pubKey, String sha256,ASCaller caller) throws Exception; 2589 2590 /** 2591 * <div class="zh">蓝牙配对界面是否需要显示访问通信录和通话记录提示框</div> 2592 * <div class="en">Whether to display the access address book and call history prompt box on the Bluetooth pairing interface</div> 2593 * 2594 * @param flag <div class="zh"> false: 隐藏checkBox访问通讯录和通话记录提示,并且默认不勾选 2595 * true:保持原生设计,显示checkBox访问通讯录和通话记录提示</div> 2596 * <div class="en"> false: hides the prompt for the checkBox to access contacts and call records, and is deselected by default 2597 * true: Keep the original design and display the checkBox prompt for accessing contacts and call history </div> 2598 * 2599 * @since V4.10.00 2600 */ 2601 void allowAccessContactsBtPairing(boolean flag) throws Exception; 2602 2603 /** 2604 * <div class="zh">飞行模式下是否保持蓝牙打开状态</div> 2605 * <div class="en">Whether to keep Bluetooth on in airplane mode</div> 2606 * 2607 * @param enable <div class="zh">true:飞行模式下保持蓝牙打开状态,false:飞行模式下保持蓝牙关闭状态 </div> 2608 * <div class="en"> true: enable, false: disable </div> 2609 * 2610 * @since V4.10.00 2611 */ 2612 void allowBtOpenAirplane(boolean enable) throws Exception; 2613 2614 /** 2615 * <div class="zh">禁用系统动画</div> 2616 * <div class="en">Disable system animation</div> 2617 * 2618 * @param disable <div class="zh"> true:关闭;false:打开 </div> 2619 * <div class="en"> true: disable. false: enable </div> 2620 * 2621 * @since V4.11.00 2622 */ 2623 void disableAnimations(boolean disable) throws Exception; 2624 2625 /** 2626 * <div class="zh">获取设备是否触发</div> 2627 * <div class="en">Obtain whether the device is triggered</div> 2628 * 2629 * @return <div class="zh"> 0:未触发 非0:触发</div> 2630 * <div class="en"> 0: not triggered Non-0: triggered </div> 2631 * 2632 * @since V4.11.00 2633 */ 2634 int getDeviceTamperInfo() throws Exception; 2635 2636 /** 2637 * <div class="zh">用于设置默认DNS,调用接口后需要断开网络,再重新连接网络才能生效,例如:调用接口后需要先关闭移动数据开关, 2638 * 然后再打开移动数据流量开关。WIFI也是如此,需要断开当前WiFi连接然后重连才能生效。</div> 2639 * <div class="en">This parameter is used to set the default DNS. After invoking an interface, disconnect from the network and reconnect to the network. For example, after invoking an interface, disable the mobile data switch. 2640 * Then turn on the mobile data traffic switch. The same is true for WIFI, which requires disconnecting the current WiFi connection and then reconnecting to work.</div> 2641 * 2642 * @param dns1 <div class="zh"> DNS的IP地址 </div> 2643 * <div class="en"> IP address of DNS </div> 2644 * @param dns2 <div class="zh"> DNS的IP地址 </div> 2645 * <div class="en"> IP address of DNS </div> 2646 * 2647 * @since V4.11.00 2648 */ 2649 void setDefaultDns(String dns1,String dns2) throws Exception; 2650 2651 /** 2652 * <div class="zh">恢复出厂设置 需在AndroidManifest下添加以下权限:"com.pax.permission.RESET"</div> 2653 * <div class="en">To restore factory Settings, you need to add the following permissions in the AndroidManifest :"com.pax.permission.RESET"</div> 2654 * 2655 * @since V4.12.00 2656 * @throws Exception 2657 */ 2658 void reset() throws Exception; 2659 2660 /** 2661 * <div class="zh">设置省电模式 注:仅适用于展讯平台的产品</div> 2662 * <div class="en">Set power saving mode Note: Only applicable to Spreadtrum platform products</div> 2663 * 2664 * @param mode <div class="zh"> 1-智能省电模式;3-省电模式;4-超级省电模式 </div> 2665 * <div class="en"> 1 - Intelligent power saving mode; 3- Power saving mode; 4- Super Power saving mode </div> 2666 * 2667 * @since V4.14.00 2668 */ 2669 void setPowerSaveMode(int mode) throws Exception; 2670 2671 /** 2672 * <div class="zh">设置TP唤醒是否打开。注:功能需要重启生效。</div> 2673 * <div class="en">Set whether TP wake-up is enabled. Note: The function needs to be restarted to take effect.</div> 2674 * 2675 * @param enable <div class="zh"> true - 打开,false 关闭 </div> 2676 * <div class="en"> true - On, false off </div> 2677 * 2678 * @since V4.14.00 2679 */ 2680 void setTpWakeupEnable(boolean enable) throws Exception; 2681 2682 /** 2683 * <div class="zh">获取TP唤醒功能开关状态。</div> 2684 * <div class="en">Get the status of TP Wake up switch.</div> 2685 * 2686 * @return <div class="zh"> true-打开,false-关闭 </div> 2687 * <div class="en"> true- On, false- off </div> 2688 * 2689 * @since V4.14.00 2690 */ 2691 boolean getTpWakeupEnable() throws Exception; 2692 2693 /** 2694 * <div class="zh">设置ethernet的限制速度</div> <div class="en">set the limit speed of ethernet</div> 2695 * 2696 * @param speed <div class="zh">10,100,1000,0(不限速),单位为Mbps</div> 2697 * <div class="en">10,100,1000,0(not limited), expressed in Mbit/s</div> 2698 * 2699 * @return <div class="zh">true:设置成功,false:设置失败</div> 2700 * <div class="en">true: succeeds, false: fails</div> 2701 * 2702 * @throws Exception 2703 * @since V4.14.00 2704 */ 2705 boolean setEthernetSpeedLimit(int speed) throws Exception; 2706 2707 /** 2708 * <div class="zh">获取ethernet当前的限制速度</div> 2709 * <div class="en">get the current limiting speed of ethernet</div> 2710 * 2711 * @return <div class="zh">10,100,1000,0(不限速)和-1(读取失败),单位为Mbps </div> 2712 * <div class="en">10,100,1000,0 (not limited), and -1 (read failure), expressed in Mbit/s</div> 2713 * 2714 * @throws Exception 2715 * @since V4.14.00 2716 */ 2717 int getEthernetSpeedLimit() throws Exception; 2718 2719 /** 2720 * <div class="zh">在设置->电池工作模式的自适应模式下,终端自动切换为桌面模式后,充电到80%时会停止充电并发送停充通知,控制停充通知是否静音。</div> 2721 * <div class="en">In the adaptive mode of setting -> Battery working mode, after the terminal automatically switches to desktop mode, it will stop charging and send a stop charging notification when charging reaches 80%. Control whether the stop charging notification is muted.</div> 2722 * 2723 * @param flag <div class="zh"> true-表示停充通知静音,false-表示停充通知有声音 </div> 2724 * <div class="en"> true: The charge stop notification is silent. false: the charge stop notification is audible </div> 2725 * 2726 * @since V4.14.00 2727 */ 2728 void setAutoAdaptionModeNotificationSilent(boolean flag) throws Exception; 2729 2730 /** 2731 * <div class="zh">设置是否打开无障碍-界面高对比度文字。</div> 2732 * <div class="en">Set whether Accessibility is turned on - Interface high contrast text.</div> 2733 * 2734 * @param enable <div class="zh"> true - 打开,false 关闭 </div> 2735 * <div class="en"> true - On, false off </div> 2736 * 2737 * @since V4.15.00 2738 */ 2739 void setHighTextContrastEnabled(boolean enable) throws Exception; 2740 2741 /** 2742 * <div class="zh">设置是否打开无障碍-色彩校正。</div> 2743 * <div class="en">Set whether to turn on Accessibility - Color correction.</div> 2744 * 2745 * @param enable <div class="zh"> true - 打开,false 关闭 </div> 2746 * <div class="en"> true - On, false off </div> 2747 * 2748 * @since V4.15.00 2749 */ 2750 void setAccessibilityDisplayDaltonizerEnabled(boolean enable) throws Exception; 2751 2752 /** 2753 * <div class="zh">设置是否打开无障碍-颜色反转。</div> 2754 * <div class="en">Set whether to turn on Accessibility - Color inversion.</div> 2755 * 2756 * @param enable <div class="zh"> true - 打开,false 关闭 </div> 2757 * <div class="en"> true - On, false off </div> 2758 * 2759 * @since V4.15.00 2760 */ 2761 void setAccessibilityDisplayInversionEnabled(boolean enable) throws Exception; 2762 2763 /** 2764 * <div class="zh">用于设置Settings—Network & internet—PrivateDns菜单中的私人DNS主机名</div> 2765 * <div class="en">Used to set the private DNS hostname in the Settings - Network & internet - PrivateDns menu</div> 2766 * 2767 * @param dns <div class="zh">私人DNS提供商主机名</div> 2768 * <div class="en">Private DNS provider hostname</div> 2769 * 2770 * @throws Exception 2771 * @since V4.15.00 2772 */ 2773 void setPrivateDns(String dns) throws Exception; 2774 2775 /** 2776 * <div class="zh">设置AGPS服务器的域名。</div> 2777 * <div class="en">Set the domain name of the AGPS server.</div> 2778 * 2779 * @param domainName <div class="zh"> AGPS服务器域名 </div> 2780 * <div class="en"> AGPS server domain name </div> 2781 * 2782 * @since V4.15.00 2783 */ 2784 void setAgpsServerDomain(String domainName) throws Exception; 2785 2786 /** 2787 * <div class="zh">获取AGPS服务器的域名。</div> 2788 * <div class="en">Get the domain name of the AGPS server.</div> 2789 * 2790 * @return <div class="zh"> AGPS服务器域名 </div> 2791 * <div class="en"> AGPS server domain name </div> 2792 * 2793 * @since V4.15.00 2794 */ 2795 String getAgpsServerDomain() throws Exception; 2796 2797 /** 2798 * <div class="zh">下载TTS离线语音文件</div> 2799 * <div class="en">Download the TTS offline voice file</div> 2800 * 2801 * @param zipFilePath <div class="zh">语音文件压缩包,需PUK签名或固件签名,每次下载都会清除之前的语音包;语音包压缩文件可包含多个国家的语言,文件总大小最大支持50M。</div> 2802 * <div class="en">The compressed package of the voice file requires PUK signature or firmware signature. Each time it is downloaded, the previous voice package will be cleared. The compressed file of the voice package can contain the languages of multiple countries, and the maximum total file size supported is 50M. </div> 2803 * 2804 * @return <div class="zh"> 2805 * <ul> 2806 * <li>0 success</li> 2807 * <li>-1:unknown</li> 2808 * <li>-2:不支持</li> 2809 * <li>-3:文件不存在或不可读</li> 2810 * <li>-4:压缩包超过50M</li> 2811 * <li>-5:入参是软链接</li> 2812 * <li>-6:验签失败</li> 2813 * <li>-7:非zip文件或解压失败</li> 2814 * </ul> 2815 * </div> <div class="en"> 2816 * <ul> 2817 * <li>0 success</li> 2818 * <li>-1:unknown</li> 2819 * <li>-2:Not supported</li> 2820 * <li>-3:The file does not exist or is unreadable</li> 2821 * <li>-4:The compressed package exceeds 50M</li> 2822 * <li>-5:Input parameters are soft links</li> 2823 * <li>-6:The signature verification failed.</li> 2824 * <li>-7:Non-zip file or decompression failed</li> 2825 * </ul> 2826 * </div> 2827 * 2828 * @throws Exception 2829 * @since V4.16.00 2830 */ 2831 int updateTTSVoices(String zipFilePath) throws Exception; 2832 2833 /** 2834 * <div class="zh">设置是否开启触摸提示音</div> 2835 * <div class="en">set whether to enable the touch sound</div> 2836 * 2837 * @param enabled <div class="zh">true:开启; false:关闭</div> 2838 * <div class="en">true: enable; false: disable</div> 2839 * 2840 * @throws Exception 2841 * @since V4.17.00 2842 */ 2843 void setSoundEffectsEnabled(boolean enabled) throws Exception; 2844 2845 /** 2846 * <div class="zh">获取触摸提示音是否开启</div> 2847 * <div class="en">get whether the touch sound is enabled</div> 2848 * 2849 * @return <div class="zh">true:开启; false:关闭</div> 2850 * <div class="en">true: enable; false: disable</div> 2851 * 2852 * @throws Exception 2853 * @since V4.17.00 2854 */ 2855 boolean isSoundEffectsEnabled() throws Exception; 2856 2857 /** 2858 * <div class="zh">设置是否由应用播放盲人键盘语音提示。</div> 2859 * <div class="en">Set whether the application plays voice prompts for the blind keyboard.</div> 2860 * 2861 * @param enabled <div class="zh"> true-应用播放盲人语音提示; false-系统播放盲人语音提示 </div> 2862 * <div class="en"> true - The application plays voice prompts for the blind; false - The system plays voice prompts for the blind. </div> 2863 * 2864 * @since V4.17.00 2865 */ 2866 void setDoubleTapKeyboardPlaySoundCustomized(boolean enabled) throws Exception; 2867 2868 /** 2869 * <div class="zh">设置是否显示安全音量警告提醒弹框。</div> 2870 * <div class="en">Set whether to display the safety volume warning reminder pop-up box.</div> 2871 * 2872 * @param disable <div class="zh"> true - 不弹框,false 弹框 </div> 2873 * <div class="en"> true - no pop-up box, false - pop-up box </div> 2874 * 2875 * @since V4.17.00 2876 */ 2877 void disableVolumeSafetyWarningDialog(boolean disable) throws Exception; 2878 2879 /** 2880 * <div class="zh">切换私人DNS模式</div> 2881 * <div class="en">Switch to the private DNS mode</div> 2882 * 2883 * @param mode <div class="zh">0-OFF; 1-automatic; 2-PROVIDER_HOSTNAME </div> 2884 * <div class="en">0-OFF; 1-automatic; 2-PROVIDER_HOSTNAME </div> 2885 * 2886 * @throws Exception 2887 * @since V4.17.00 2888 */ 2889 void switchPrivateDNSMode(int mode) throws Exception; 2890 2891 /** 2892 * <div class="zh">设置客显屏显示PIN键盘</div> 2893 * <div class="en">Set the guest display screen to show the PIN keyboard</div> 2894 * 2895 * @param type <div class="zh"> 1 - 默认客显屏PIN键盘 2 - 应用自行实现客显屏密码键盘 </div> 2896 * <div class="en">1 - Default PIN keyboard on the customer display screen 2 - The application implements the customer display screen PIN keyboard by itself</div> 2897 * 2898 * @throws Exception 2899 * @since V4.18.00 2900 */ 2901 void setGuestKeyBoardType(int type) throws Exception; 2902 2903 /** 2904 * <div class="zh">应用配置文件和脚本文件的验签。</div> <div class="en">Verification of application configuration files and script files.</div> 2905 * 2906 * @param filePath <div class="zh"> 2907 * <ul> 2908 * <li>文件的绝对路径。</li> 2909 * </ul> 2910 * </div> 2911 * <div class="en"> 2912 * <ul> 2913 * <li>The absolute path of the file.</li> 2914 * </ul> 2915 * </div> 2916 * 2917 * @param fileType <div class="zh">文件类型,应用配置文件和脚本文件固定为0x59 。</div> 2918 * <div class="en">The file type, application configuration file and script file are fixed as 0x59.</div> 2919 * 2920 * @param pukType <div class="zh">1:使用终端当前的US PUK对文件进行验证 2921 * 2: 使用参数puk对文件进行验证 。</div> 2922 * <div class="en">1: Verify the file using the current US PUK of the terminal. 2923 * 2: Verify the file using the parameter puk.</div> 2924 * 2925 * @param puk <div class="zh">pukType为2时,使用此puk验证文件; pukType为其他值时忽略此参数 。</div> 2926 * <div class="en">When pukType is 2, use this puk to verify the file; when pukType has other values, ignore this parameter.</div> 2927 * 2928 * @return <div class="zh"> 2929 * <ul> 2930 * <li>>0: 去掉签名数据后的原始文件长度 ;<=0: 验签失败。</li> 2931 * </ul> 2932 * </div> 2933 * <div class="en"> 2934 * <ul> 2935 * <li>> 0: Length of the original file after removing signature data; <= 0: Signature verification failed.</li> 2936 * </ul> 2937 * </div> 2938 * @throws Exception 2939 * @since V4.18.00 2940 */ 2941 int verifySign(String filePath, int fileType, int pukType, byte[] puk) throws Exception; 2942 2943 /** 2944 * <div class="zh">设置是否禁用摄像头功能</div> 2945 * <div class="en">Set whether to disable the camera function.</div> 2946 * 2947 * @param disable <div class="zh">true:禁用 false:开启</div> 2948 * <div class="en">true: Disable false: Enable</div> 2949 * 2950 * @throws Exception 2951 * @since V4.18.00 2952 */ 2953 void disableCamera(boolean disable) throws Exception; 2954 2955 /** 2956 * <div class="zh">设置天线模式</div> 2957 * <div class="en">set antenna mode</div> 2958 * 2959 * @param antMode <div class="zh">天线模式:0 内置天线模式; 1 外置天线模式; 2 混合天线模式</div> 2960 * <div class="en">antMode:0 internal antenna mode; 1 external antenna mode; 2 mixed antenna mode</div> 2961 * 2962 * @throws Exception 2963 * @since V4.18.00 2964 */ 2965 void setAntMode(int antMode) throws Exception; 2966 2967 /** 2968 * <div class="zh">获取天线模式</div> 2969 * <div class="en">get antenna mode</div> 2970 * 2971 * @return <div class="zh">天线模式:0 内置天线模式;1 外置天线模式; 2 混合天线模式</div> 2972 * <div class="en">antMode:0 internal antenna mode; 1 external antenna mode; 2 mixed antenna mode</div> 2973 * 2974 * @throws Exception 2975 * @since V4.18.00 2976 */ 2977 int getAntMode() throws Exception; 2978 2979 /** 2980 * <div class="zh">税控模块上电接口。</div> 2981 * <div class="en">Power-on interface of the tax control module.</div> 2982 * 2983 * @param mode <div class="zh"> 0-USB税控模块;1-串口税控模块 </div> 2984 * <div class="en"> 0 - USB tax control module; 1 - Serial port tax control module. </div> 2985 * 2986 * @param on <div class="zh"> true-上电; false-下电 </div> 2987 * <div class="en"> true - power on; false - power off. </div> 2988 * 2989 * @since V4.18.00 2990 */ 2991 void controlTaxPower(int mode,boolean on) throws Exception; 2992 2993 /** 2994 * <div class="zh">设置快捷启动方式。</div> 2995 * <div class="en">Set up a quick launch method.</div> 2996 * 2997 * @param name <div class="zh"> 快捷功能,当前支持如下:"quick_camera_disabled" 熄屏双击音量加启动相机应用 </div> 2998 * <div class="en"> Quick functions currently supported: "quick_camera_disabled" Double-click the volume up button on the locked screen to launch the camera app. </div> 2999 * 3000 * @param value <div class="zh"> "quick_camera_disabled" 对应选项: "1"-禁止唤醒;"0"-恢复唤醒 </div> 3001 * <div class="en"> "quick_camera_disabled": "1" - Prohibit wake-up; "0" - Restore wake-up. </div> 3002 * 3003 * @since V4.18.00 3004 */ 3005 void setQuickLaunch(String name,String value) throws Exception; 3006 3007 /** 3008 * <div class="zh">获取设备相关版本信息</div> 3009 * <div class="en">Obtain device-related version information</div> 3010 * 3011 * @param componentName <div class="zh"> "modem": 获取modem版本信息 </div> 3012 * <div class="en"> "modem": Obtain modem version information </div> 3013 * 3014 * @return <div class="zh">相关版本信息</div> 3015 * <div class="en">Relevant version information</div> 3016 * 3017 * @throws Exception Exception 3018 * @since V4.18.00 3019 */ 3020 String getSystemComponentVersion(String componentName) throws Exception; 3021 3022 /** 3023 * <div class="zh">设置当前物理键盘布局</div> 3024 * <div class="en">set the current physical keyboard layout</div> 3025 * 3026 * @param keyboardLayoutDescriptor 3027 * <div class="zh">键盘描述字符</div> 3028 * <div class="en">physical keyboard description character</div> 3029 * 3030 * @throws Exception Exception 3031 */ 3032 void setCurrentKeyboardLayoutForInputDevice(String keyboardLayoutDescriptor) throws Exception; 3033 3034 /** 3035 * <div class="zh">获取当前物理键盘布局</div> 3036 * <div class="en">get the current physical keyboard layout</div> 3037 * 3038 * @throws Exception Exception 3039 */ 3040 String getCurrentKeyboardLayoutForInputDevice() throws Exception; 3041 3042 /** 3043 * <div class="zh">下载TTS离线语音文件</div> 3044 * <div class="en">Download the TTS offline voice file</div> 3045 * 3046 * @param mode <div class="zh">0: 增量下载语音包 1: 删除语音包。</div> 3047 * <div class="en">0: Incrementally download voice packs 1: Delete voice packs. </div> 3048 * 3049 * @param path <div class="zh">模式0时,语音包的路径,需PUK签名或固件签名,文件总大小不超过50M;模式1时,请使用/data/resource/tts下的目录名,删除对应语音包。</div> 3050 * <div class="en">When in Mode 0, the path of the voice package requires PUK signature or firmware signature, and the total file size should not exceed 50M. When in Mode 1, please use the directory name under /data/resource/tts and delete the corresponding voice package. </div> 3051 * 3052 * @return <div class="zh"> 3053 * <ul> 3054 * <li>0 success</li> 3055 * <li>-1:unknown</li> 3056 * <li>-2:不支持</li> 3057 * <li>-3:文件不存在或不可读</li> 3058 * <li>-4:压缩包超过50M</li> 3059 * <li>-5:入参是软链接</li> 3060 * <li>-6:验签失败</li> 3061 * <li>-7:非zip文件或解压失败</li> 3062 * <li>-8 需删除的语音文件不存在</li> 3063 * <li>-9 参数非法</li> 3064 * </ul> 3065 * </div> <div class="en"> 3066 * <ul> 3067 * <li>0 success</li> 3068 * <li>-1:unknown</li> 3069 * <li>-2:Not supported</li> 3070 * <li>-3:The file does not exist or is unreadable</li> 3071 * <li>-4:The compressed package exceeds 50M</li> 3072 * <li>-5:Input parameters are soft links</li> 3073 * <li>-6:The signature verification failed.</li> 3074 * <li>-7:Non-zip file or decompression failed</li> 3075 * <li>-8 The voice file to be deleted does not exist</li> 3076 * <li>-9 Illegal parameter</li> 3077 * </ul> 3078 * </div> 3079 * 3080 * @throws Exception Exception 3081 * @since V4.18.00 3082 */ 3083 int updateTTSVoices(int mode, String path) throws Exception; 3084}