12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import Context from "android.content.Context";
- import BatteryManager from "android.os.BatteryManager";
- import { GetBatteryInfo, GetBatteryInfoOptions, GetBatteryInfoSuccess, GetBatteryInfoResult, GetBatteryInfoSync } from '../interface.uts'
- import IntentFilter from 'android.content.IntentFilter';
- import Intent from 'android.content.Intent';
- import { GetBatteryInfoFailImpl } from '../unierror';
- /**
- * 异步获取电量
- */
- export const getBatteryInfo : GetBatteryInfo = function (options : GetBatteryInfoOptions) {
- const context = UTSAndroid.getAppContext();
- if (context != null) {
- const manager = context.getSystemService(
- Context.BATTERY_SERVICE
- ) as BatteryManager;
- const level = manager.getIntProperty(
- BatteryManager.BATTERY_PROPERTY_CAPACITY
- );
- let ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
- let batteryStatus = context.registerReceiver(null, ifilter);
- let status = batteryStatus?.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
- let isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL;
- const res : GetBatteryInfoSuccess = {
- errMsg: 'getBatteryInfo:ok',
- level,
- isCharging: isCharging
- }
- options.success?.(res)
- options.complete?.(res)
- } else {
- let res = new GetBatteryInfoFailImpl(1001);
- options.fail?.(res)
- options.complete?.(res)
- }
- }
- /**
- * 同步获取电量
- */
- export const getBatteryInfoSync : GetBatteryInfoSync = function () : GetBatteryInfoResult {
- const context = UTSAndroid.getAppContext();
- if (context != null) {
- const manager = context.getSystemService(
- Context.BATTERY_SERVICE
- ) as BatteryManager;
- const level = manager.getIntProperty(
- BatteryManager.BATTERY_PROPERTY_CAPACITY
- );
- let ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
- let batteryStatus = context.registerReceiver(null, ifilter);
- let status = batteryStatus?.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
- let isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL;
- const res : GetBatteryInfoResult = {
- level: level,
- isCharging: isCharging
- };
- return res;
- }
- else {
- /**
- * 无有效上下文
- */
- const res : GetBatteryInfoResult = {
- level: -1,
- isCharging: false
- };
- return res;
- }
- }
|