device.d.ts 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. /**
  2. * device模块提供了与设备有关的信息与操作,例如获取设备宽高,内存使用率,IMEI,调整设备亮度、音量等。
  3. *
  4. * 此模块的部分函数,例如调整音量,需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
  5. */
  6. declare global {
  7. namespace device {
  8. /**
  9. * 设备屏幕分辨率宽度。例如1080。
  10. */
  11. const width: number;
  12. /**
  13. * 设备屏幕分辨率高度。例如1920。
  14. */
  15. const height: number;
  16. /**
  17. * 修订版本号,或者诸如"M4-rc20"的标识。
  18. */
  19. const buildId: string;
  20. /**
  21. * 设备的主板(?)名称。
  22. */
  23. const broad: string;
  24. /**
  25. * 与产品或硬件相关的厂商品牌,如"Xiaomi", "Huawei"等。
  26. */
  27. const brand: string;
  28. /**
  29. * 设备在工业设计中的名称(代号)。
  30. */
  31. const device: string;
  32. /**
  33. * 设备型号。
  34. */
  35. const model: string;
  36. /**
  37. * 整个产品的名称。
  38. */
  39. const product: string;
  40. /**
  41. * 设备Bootloader的版本。
  42. */
  43. const bootloader: string;
  44. /**
  45. * 设备的硬件名称(来自内核命令行或者/proc)。
  46. */
  47. const hardware: string;
  48. /**
  49. * 构建(build)的唯一标识码。
  50. */
  51. const fingerprint: string;
  52. /**
  53. * 硬件序列号。
  54. */
  55. const serial: string;
  56. /**
  57. * 安卓系统API版本。例如安卓4.4的sdkInt为19。
  58. */
  59. const sdkInt: number;
  60. /**
  61. * 设备固件版本号。
  62. */
  63. const incremental: string;
  64. /**
  65. * Android系统版本号。例如"5.0", "7.1.1"。
  66. */
  67. const release: string;
  68. /**
  69. * 基础操作系统。
  70. */
  71. const baseOS: string;
  72. /**
  73. * 安全补丁程序级别。
  74. */
  75. const securityPatch: string;
  76. /**
  77. * 开发代号,例如发行版是"REL"。
  78. */
  79. const codename: string;
  80. /**
  81. * 返回设备的IMEI。
  82. */
  83. function getIMEI(): string;
  84. /**
  85. * 返回设备的Android ID。
  86. *
  87. * Android ID为一个用16进制字符串表示的64位整数,在设备第一次使用时随机生成,之后不会更改,除非恢复出厂设置。
  88. */
  89. function getAndroidId(): string;
  90. /**
  91. * 返回设备的Mac地址。该函数需要在有WLAN连接的情况下才能获取,否则会返回null。
  92. *
  93. * 可能的后续修改:未来可能增加有root权限的情况下通过root权限获取,从而在没有WLAN连接的情况下也能返回正确的Mac地址,因此请勿使用此函数判断WLAN连接。
  94. */
  95. function getMacAddress(): string;
  96. /**
  97. * 返回当前的(手动)亮度。范围为0~255。
  98. */
  99. function getBrightness(): number;
  100. /**
  101. * 返回当前亮度模式,0为手动亮度,1为自动亮度。
  102. */
  103. function getBrightnessMode(): number;
  104. /**
  105. * 设置当前手动亮度。如果当前是自动亮度模式,该函数不会影响屏幕的亮度。
  106. *
  107. * 此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
  108. */
  109. function setBrightness(b: number): void;
  110. /**
  111. * 设置当前亮度模式。
  112. *
  113. * 此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
  114. */
  115. function setBrightnessMode(mode: 0 | 1): void;
  116. /**
  117. * 返回当前媒体音量。
  118. */
  119. function getMusicVolume(): number;
  120. /**
  121. * 返回当前通知音量。
  122. */
  123. function getNotificationVolume(): number;
  124. /**
  125. * 返回当前闹钟音量。
  126. */
  127. function getAlarmVolume(): number;
  128. /**
  129. * 返回媒体音量的最大值。
  130. */
  131. function getMusicMaxVolume(): number;
  132. /**
  133. * 返回通知音量的最大值。
  134. */
  135. function getNotificationMaxVolume(): number;
  136. /**
  137. * 返回闹钟音量的最大值。
  138. */
  139. function getAlarmMaxVolume(): number;
  140. /**
  141. * 设置当前媒体音量。
  142. *
  143. * 此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
  144. */
  145. function setMusicVolume(volume: number): void;
  146. /**
  147. * 设置当前通知音量。
  148. *
  149. * 此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
  150. */
  151. function setNotificationVolume(volume: number): void;
  152. /**
  153. * 设置当前闹钟音量。
  154. *
  155. * 此函数需要"修改系统设置"的权限。如果没有该权限,会抛出SecurityException并跳转到权限设置界面。
  156. */
  157. function setAlarmVolume(volume: number): void;
  158. /**
  159. * 返回当前电量百分比。
  160. */
  161. function getBattery(): number;
  162. /**
  163. * 返回设备是否正在充电。
  164. */
  165. function isCharging(): boolean;
  166. /**
  167. * 返回设备内存总量,单位字节(B)。1MB = 1024 * 1024B。
  168. */
  169. function getTotalMem(): number;
  170. /**
  171. * 返回设备当前可用的内存,单位字节(B)。
  172. */
  173. function getAvailMem(): number;
  174. /**
  175. * 返回设备屏幕是否是亮着的。如果屏幕亮着,返回true; 否则返回false。
  176. *
  177. * 需要注意的是,类似于vivo xplay系列的息屏时钟不属于"屏幕亮着"的情况,虽然屏幕确实亮着但只能显示时钟而且不可交互,此时isScreenOn()也会返回false。
  178. */
  179. function isScreenOn(): boolean;
  180. /**
  181. * 唤醒设备。包括唤醒设备CPU、屏幕等。可以用来点亮屏幕。
  182. */
  183. function wakeUp(): void;
  184. /**
  185. * 如果屏幕没有点亮,则唤醒设备。
  186. */
  187. function wakeUpIfNeeded(): void;
  188. /**
  189. * 保持屏幕常亮。
  190. *
  191. * 此函数无法阻止用户使用锁屏键等正常关闭屏幕,只能使得设备在无人操作的情况下保持屏幕常亮;同时,如果此函数调用时屏幕没有点亮,则会唤醒屏幕。
  192. *
  193. * 在某些设备上,如果不加参数timeout,只能在Auto.js的界面保持屏幕常亮,在其他界面会自动失效,这是因为设备的省电策略造成的。因此,建议使用比较长的时长来代替"一直保持屏幕常亮"的功能,例如device.keepScreenOn(3600 * 1000)。
  194. *
  195. * 可以使用device.cancelKeepingAwake()来取消屏幕常亮。
  196. */
  197. function keepScreenOn(timeout: number): void;
  198. /**
  199. * 保持屏幕常亮,但允许屏幕变暗来节省电量。此函数可以用于定时脚本唤醒屏幕操作,不需要用户观看屏幕,可以让屏幕变暗来节省电量。
  200. *
  201. * 此函数无法阻止用户使用锁屏键等正常关闭屏幕,只能使得设备在无人操作的情况下保持屏幕常亮;同时,如果此函数调用时屏幕没有点亮,则会唤醒屏幕。
  202. *
  203. * 可以使用device.cancelKeepingAwake()来取消屏幕常亮。
  204. */
  205. function keepScreenDim(timeout: number): void;
  206. /**
  207. * 取消设备保持唤醒状态。用于取消device.keepScreenOn(), device.keepScreenDim()等函数设置的屏幕常亮。
  208. */
  209. function cancelKeepingAwake(): void;
  210. /**
  211. * 使设备震动一段时间。
  212. */
  213. function vibrate(millis: number): void;
  214. /**
  215. * 如果设备处于震动状态,则取消震动。
  216. */
  217. function cancelVibration(): void;
  218. }
  219. }
  220. export { };