js-apis-storage-statistics.md 16.0 KB
Newer Older
1 2 3
# 应用空间统计

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
Z
zhangxingxia 已提交
4 5
>
> - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zhangxingxia 已提交
6
> - API 9当前为Canary版本,仅供试用,不保证接口可稳定调用。
Z
zhangxingxia 已提交
7 8

该模块提供空间查询相关的常用功能:包括对内外卡的空间查询,对应用分类数据统计的查询,对应用数据的查询等。
9 10 11 12

## 导入模块

```js
Z
zhangxingxia 已提交
13
import storagestatistics from "@ohos.storageStatistics";
14 15 16 17
```

## storagestatistics.getTotalSizeOfVolume

Z
zhangxingxia 已提交
18
getTotalSizeOfVolume(volumeUuid: string): Promise<number>
19 20 21

异步获取指定卷的总空间大小,以promise方式返回。

22 23
**需要权限**:ohos.permission.STORAGE_MANAGER

24 25
**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

26 27
**系统API**:该接口为系统接口,三方应用不支持调用

28 29 30 31 32 33 34 35
- 参数

  | 参数名     | 类型   | 必填 | 说明 |
  | ---------- | ------ | ---- | ---- |
  | volumeUuid | string | 是   | 卷id |

- 返回值

Z
zhangxingxia 已提交
36 37 38
  | 类型                  | 说明             |
  | --------------------- | ---------------- |
  | Promise<number> | 返回指定卷总空间 |
39 40 41 42 43 44

- 示例

  ```js
  let uuid = "";
  storagestatistics.getTotalSizeOfVolume(uuid).then(function(number){
Z
zhangxingxia 已提交
45 46 47
      console.info("getTotalSizeOfVolume successfully:"+ number);
  }).catch(function(err){
      console.info("getTotalSizeOfVolume failed with error:"+ err);
48 49 50 51 52
  });
  ```

## storagestatistics.getTotalSizeOfVolume

Z
zhangxingxia 已提交
53
getTotalSizeOfVolume(volumeUuid: string, callback:AsyncCallback<number>):void
54 55 56

异步获取指定卷的总空间大小,以callback方式返回。

57 58
**需要权限**:ohos.permission.STORAGE_MANAGER

59 60
**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

61 62
**系统API**:该接口为系统接口,三方应用不支持调用

63 64
- 参数

Z
zhangxingxia 已提交
65 66 67 68
  | 参数名     | 类型                                 | 必填 | 说明                       |
  | ---------- | ------------------------------------ | ---- | -------------------------- |
  | volumeUuid | string                               | 是   | 卷id                       |
  | callback   | callback:AsyncCallback<number> | 是   | 获取指定卷总空间之后的回调 |
69 70 71 72 73 74 75

- 示例

  ```js
  let uuid = "";
  storagestatistics.getTotalSizeOfVolume(uuid, function(error, number){
      // do something
Z
zhangxingxia 已提交
76
      console.info("getTotalSizeOfVolume successfully:"+ number);
77 78
  });
  ```
Z
zhangxingxia 已提交
79
  
80 81 82 83
  

## storagestatistics.getFreeSizeOfVolume

Z
zhangxingxia 已提交
84
getFreeSizeOfVolume(volumeUuid: string): Promise<number>
85 86 87

异步获取指定卷的可用空间大小,以promise方式返回。

88 89
**需要权限**:ohos.permission.STORAGE_MANAGER

90 91
**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

92 93
**系统API**:该接口为系统接口,三方应用不支持调用

94 95 96 97 98 99 100 101
- 参数

  | 参数名     | 类型   | 必填 | 说明 |
  | ---------- | ------ | ---- | ---- |
  | volumeUuid | string | 是   | 卷id |

- 返回值

Z
zhangxingxia 已提交
102 103 104
  | 类型                  | 说明               |
  | --------------------- | ------------------ |
  | Promise<number> | 返回指定卷可用空间 |
105 106 107 108 109 110

- 示例

  ```js
  let uuid = "";
  storagestatistics.getFreeSizeOfVolume(uuid).then(function(number){
Z
zhangxingxia 已提交
111 112 113
      console.info("getFreeSizeOfVolume successfully:"+ number);
  }).catch(function(err){
      console.info("getFreeSizeOfVolume failed with error:"+ err);
114
  });
Z
zhangxingxia 已提交
115
  
116 117 118 119
  ```

## storagestatistics.getFreeSizeOfVolume

Z
zhangxingxia 已提交
120
getFreeSizeOfVolume(volumeUuid: string, callback:AsyncCallback<number>):void
121 122 123

异步获取指定卷的可用空间大小,以callback方式返回。

124 125
**需要权限**:ohos.permission.STORAGE_MANAGER

126 127
**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

128 129
**系统API**:该接口为系统接口,三方应用不支持调用

130 131
- 参数

Z
zhangxingxia 已提交
132 133 134 135
  | 参数名     | 类型                                 | 必填 | 说明                         |
  | ---------- | ------------------------------------ | ---- | ---------------------------- |
  | volumeUuid | string                               | 是   | 卷id                         |
  | callback   | callback:AsyncCallback<number> | 是   | 获取指定卷可用空间之后的回调 |
136 137 138 139 140 141 142

- 示例

  ```js
  let uuid = "";
  storagestatistics.getFreeSizeOfVolume(uuid, function(error, number){
      // do something
Z
zhangxingxia 已提交
143
      console.info("getFreeSizeOfVolume successfully:"+ number);
144 145 146
  });
  ```

147
## storagestatistics.getBundleStats<sup>9+</sup>
148

149
getBundleStats(packageName: string): Promise&lt;BundleStats&gt;
150

Z
zhangxingxia 已提交
151
异步获取应用存储数据,以promise方式返回。
152

153 154
**需要权限**:ohos.permission.STORAGE_MANAGER

155 156
**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

157 158
**系统API**:该接口为系统接口,三方应用不支持调用

159 160 161 162 163
- 参数

  | 参数名      | 类型   | 必填 | 说明     |
  | ----------- | ------ | ---- | -------- |
  | packageName | string | 是   | 应用包名 |
Z
zhangxingxia 已提交
164
  
165 166 167 168
- 返回值

  | 类型                                       | 说明                       |
  | ------------------------------------------ | -------------------------- |
Z
zhangxingxia 已提交
169
  | Promise&lt;[Bundlestats](#bundlestats)&gt; | 返回指定卷上的应用存储数据 |
170 171 172 173 174

- 示例

  ```js
  let packageName = "";
Z
zhangxingxia 已提交
175
  storagestatistics.getBundleStats(packageName).then(function(BundleStats){
Z
zhangxingxia 已提交
176 177 178
      console.info("getBundleStats successfully:"+ JSON.stringify(BundleStats));
  }).catch(function(err){
      console.info("getBundleStats failed with error:"+ err);
179 180 181
  });
  ```

182
## storagestatistics.getBundleStats<sup>9+</sup>
183

184
getBundleStats(packageName: string,  callback: AsyncCallback&lt;BundleStats&gt;): void
185

Z
zhangxingxia 已提交
186
异步获取应用存储数据,以callback方式返回。
187

188 189
**需要权限**:ohos.permission.STORAGE_MANAGER

190 191
**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

192 193
**系统API**:该接口为系统接口,三方应用不支持调用

194 195
- 参数

Z
zhangxingxia 已提交
196 197
  | 参数名   | 类型                                                      | 必填 | 说明                                 |
  | -------- | --------------------------------------------------------- | ---- | ------------------------------------ |
198
  | packageName | string | 是   | 应用包名 |
Z
zhangxingxia 已提交
199
  | callback | callback:AsyncCallback&lt;[Bundlestats](#bundlestats)&gt; | 是   | 获取指定卷上的应用存储数据之后的回调 |
Z
zhangxingxia 已提交
200
  
201 202 203 204
- 示例

  ```js
  let packageName = "";
Z
zhangxingxia 已提交
205
  storagestatistics.getBundleStats(packageName, function(error, BundleStats){
206
      // do something
Z
zhangxingxia 已提交
207
      console.info("getBundleStats successfully:"+ JSON.stringify(BundleStats));
208 209 210
  });
  ```

211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258


## storagestatistics.getCurrentBundleStats<sup>9+</sup>

getCurrentBundleStats(): Promise<BundleStats>

第三方应用异步获取占用空间,以promise方式返回。

**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

- 返回值

  | 类型                                        | 说明                       |
  | ------------------------------------------ | -------------------------- |
  | Promise&lt;[Bundlestats](#bundlestats)&gt; | 返回指定卷上的应用存储状态      |

- 示例

  ```js
      let bundleStats = await storageStatistics.getCurrentBundleStats();
      console.info("getCurrentBundleStats successfully:"+ JSON.stringify(bundleStats));
  ```

## storagestatistics.getCurrentBundleStats<sup>9+</sup>

getCurrentBundleStats(callback: AsyncCallback<BundleStats>): void

第三方应用异步获取占用空间,以callback方式返回。
 
**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

- 参数

  | 参数名    | 类型                                                       | 必填  | 说明                                 |
  | -------- | --------------------------------------------------------- | ---- | ------------------------------------ |
  | callback | callback:AsyncCallback&lt;[BundleStats](#bundlestats)&gt; | 是   | 获取指定卷上的应用存储状态之后的回调        |

- 示例

  ```js
  storagestatistics.getCurrentBundleStats(function(error, bundleStats){
      // do something
      console.info("getCurrentBundleStats successfully:"+ JSON.stringify(bundleStats));
  });
  ```
  
  
  
259
## BundleStats<sup>9+</sup>
260

261 262
**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.StorageService.SpatialStatistics。

263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508
- 属性

| 名称      | 类型   | 说明           |
| --------- | ------ | -------------- |
| appSize   | number | app数据大小    |
| cacheSize | number | 缓存数据大小   |
| dataSize  | number | 应用总数据大小 |




## storagestatistics.getTotalSize<sup>9+</sup>

getTotalSize(): Promise<number>

获取内卡的总空间大小,以promise方式返回。

**需要权限**:ohos.permission.STORAGE_MANAGER

**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

**系统API**:该接口为系统接口,三方应用不支持调用

- 返回值

  | 类型                   | 说明               |
  | --------------------- | ------------------ |
  | Promise&lt;number&gt; | 返回内卡的总空间大小   |

- 示例

  ```js
      let number = await storageStatistics.getTotalSize();
      console.info("getTotalSize successfully:"+ JSON.stringify(number));
  ```
  
## storagestatistics.getTotalSize<sup>9+</sup>

getTotalSize(callback: AsyncCallback<number>): void

获取内卡的总空间大小,以callback方式返回。

**需要权限**:ohos.permission.STORAGE_MANAGER

**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

**系统API**:该接口为系统接口,三方应用不支持调用

- 参数

  | 参数名    | 类型                                  | 必填  | 说明                     |
  | -------- | ------------------------------------ | ---- | ------------------------ |
  | callback | callback:AsyncCallback&lt;number&gt; | 是   | 获取内卡的总空间大小之后的回调 |

- 示例

  ```js
  storagestatistics.getTotalSize(function(error, number){
      // do something
      console.info("getTotalSize successfully:"+ JSON.stringify(number));
  });
  ```


## storagestatistics.getFreeSize<sup>9+</sup>

getFreeSize(): Promise<number>

获取内卡的可用空间大小,以promise方式返回。

**需要权限**:ohos.permission.STORAGE_MANAGER

**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

**系统API**:该接口为系统接口,三方应用不支持调用

- 返回值

  | 类型                   | 说明               |
  | --------------------- | ------------------ |
  | Promise&lt;number&gt; | 返回内卡的可用空间大小 |

- 示例

  ```js
      let number = await storageStatistics.getFreeSize();
      console.info("getFreeSize successfully:"+ JSON.stringify(number));
  ```


## storagestatistics.getFreeSize<sup>9+</sup>

getFreeSize(callback: AsyncCallback<number>): void

获取内卡的可用空间大小,以callback方式返回。

**需要权限**:ohos.permission.STORAGE_MANAGER

**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

**系统API**:该接口为系统接口,三方应用不支持调用

- 参数

  | 参数名    | 类型                                  | 必填 | 说明                       |
  | -------- | ------------------------------------ | ---- | ------------------------- |
  | callback | callback:AsyncCallback&lt;number&gt; | 是   | 获取内卡的可用空间大小之后的回调 |

- 示例

  ```js
  storagestatistics.getFreeSize(function(error, number){
      // do something
      console.info("getFreeSize successfully:"+ JSON.stringify(number));
  });
  ```



## storagestatistics.getSystemSize<sup>9+</sup>

getSystemSize(): Promise&lt;number&gt;

异步获取系统空间大小,以promise方式返回。

**需要权限**:ohos.permission.STORAGE_MANAGER

**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

**系统API**:该接口为系统接口,三方应用不支持调用

- 返回值

  | 类型                  | 说明             |
  | --------------------- | ---------------- |
  | Promise&lt;number&gt; | 返回系统空间大小 |

- 示例

  ```js
  storagestatistics.getSystemSize().then(function(number){
      console.info("getSystemSize successfully:"+ number);
  }).catch(function(err){
      console.info("getSystemSize failed with error:"+ err);
  });
  ```

## storagestatistics.getSystemSize<sup>9+</sup>

getSystemSize(callback:AsyncCallback&lt;number&gt;):void

异步获取系统空间大小,以callback方式返回。

**需要权限**:ohos.permission.STORAGE_MANAGER

**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

**系统API**:该接口为系统接口,三方应用不支持调用

- 参数

  | 参数名     | 类型                                 | 必填 | 说明                       |
  | ---------- | ------------------------------------ | ---- | -------------------------- |
  | callback   | callback:AsyncCallback&lt;number&gt; | 是   | 获取系统空间大小之后的回调 |

- 示例

  ```js
  storagestatistics.getSystemSize(function(error, number){
      // do something
      console.info("getSystemSize successfully:"+ number);
  });
  ```
  
  
  
## storagestatistics.getUserStorageStats<sup>9+</sup>

getUserStorageStats(userId?: string): Promise&lt;StorageStats&gt;

异步获取用户各类别数据大小,以promise方式返回。

**需要权限**:ohos.permission.STORAGE_MANAGER

**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

**系统API**:该接口为系统接口,三方应用不支持调用

- 参数

  | 参数名     | 类型   | 必填 | 说明 |
  | ---------- | ------ | ---- | ---- |
  | userId | string | 否   | 用户id <br/>确认当前用户:<br/>-&nbsp;有值:表示指定用户。<br/>-&nbsp;无值:表示当前用户。|

- 返回值

  | 类型                  | 说明             |
  | --------------------- | ---------------- |
  | Promise&lt;[StorageStats](#StorageStats)&gt; | 返回各类别数据大小 |

- 示例

  ```js
  let userId = "";
  storagestatistics.getUserStorageStats(userId).then(function(StorageStats){
      console.info("getUserStorageStats successfully:"+ JSON.stringify(StorageStats));
  }).catch(function(err){
      console.info("getUserStorageStats failed with error:"+ err);
  });
  ```

## storagestatistics.getUserStorageStats<sup>9+</sup>

getUserStorageStats(userId?: string, callback:AsyncCallback&lt;StorageStats&gt;):void

异步获取用户各类别数据大小,以callback方式返回。

**需要权限**:ohos.permission.STORAGE_MANAGER

**系统能力**:SystemCapability.FileManagement.StorageService.SpatialStatistics

**系统API**:该接口为系统接口,三方应用不支持调用

- 参数

  | 参数名     | 类型                                 | 必填 | 说明                       |
  | ---------- | ------------------------------------ | ---- | -------------------------- |
  | userId | string                               | 否   | 用户id <br/>确认当前用户:<br/>-&nbsp;有值:表示指定用户。<br/>-&nbsp;无值:表示当前用户。                       |
  | callback   | callback:AsyncCallback&lt;[StorageStats](#StorageStats)&gt; | 是   | 返回各类别数据大小之后的回调 |

- 示例

  ```js
  storagestatistics.getUserStorageStats(userId, function(error, StorageStats){
      // do something
      console.info("getUserStorageStats successfully:"+ JSON.stringify(StorageStats));
  });
  ```



## StorageStats<sup>9+</sup>

**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.StorageService.SpatialStatistics。

- 属性
509 510 511

| 名称      | 类型   | 说明           |
| --------- | ------ | -------------- |
512 513 514 515 516 517
| total   | number | 内卡总空间大小    |
| audio | number | 音频数据大小   |
| video  | number | 视频数据大小 |
| image   | number | 图像数据大小    |
| file | number | 文件数据大小   |
| app  | number | 应用数据大小 |