// index.uts
// 引用android api
import Context from "android.content.Context";
import BatteryManager from "android.os.BatteryManager";
// 引用uts环境库
import { getAppContext } from "io.dcloud.uts.android";
export function getBatteryCapacity(): string {
// 获取android系统 application上下文
const context = getAppContext();
if (context != null) {
const manager = context.getSystemService(
Context.BATTERY_SERVICE
) as BatteryManager;
const currentLevel: number = manager.getIntProperty(
BatteryManager.BATTERY_PROPERTY_CAPACITY
);
return '' + currentLevel + '%';
}
return "0%";
}
uts教程里的代码,import Context from "android.content.Context
和const context = getAppContext()
,这俩context有啥区别
3 个回复
无敌暴龙 (作者)
什么情况下用
import Context from "android.content.Context
什么情况下用getAppContext()
DCloud_Android_THB
一个是当前context对象 是一个引入Context类型
无敌暴龙 (作者)
什么情况下用getAppContext(),什么情况下用getUniActivity()
2022-12-12 18:26
DCloud_Android_DQQ
是因为下面用到了一个常量
Context.BATTERY_SERVICE
引用getAppContext 是因为需要application上下文实例。
在android场景中,
getAppContext 比较常用,等同于android原生开发中的 getApplication() 在获取app 相关的能力时,都需要引用。
Contex 比较少见,只要在调用context 相关系统能力,明确要求传入Context 字面量的时候才需要。
具体什么时候需要调用哪个类,实际上是取决于android api 要求的。
在开发相关功能时,查阅对应的android 文档,进而决定你应该使用哪个api