importClass(android.content.IntentFilter);
importClass(android.os.BatteryManager);
let?BatteryN;?//目前電量
let?BatteryV;?//電池電壓
let?BatteryT;?//電池溫度
let?BatteryStatus;?//電池狀態
let?BatteryTemp;?//電池使用情況
let?mBatInfoReceiver?=?new?JavaAdapter(android.content.BroadcastReceiver,?{
?onReceive:?function?(context,?intent)?{
log(intent);
let?action?=?intent.getAction();
/*
?*?如果捕捉到的action是ACTION_BATTERY_CHANGED,?就運行onBatteryInfoReceiver()
?*/
if?(Intent.ACTION_BATTERY_CHANGED.equals(action))?{
?BatteryN?=?intent.getIntExtra("level",?0);?//目前電量
?BatteryV?=?intent.getIntExtra("voltage",?0);?//電池電壓
?BatteryT?=?intent.getIntExtra("temperature",?0);?//電池溫度
?switch?(intent.getIntExtra("status",?BatteryManager.BATTERY_STATUS_UNKNOWN))?{
case?BatteryManager.BATTERY_STATUS_CHARGING:
?BatteryStatus?=?"充電狀態";
?break;
case?BatteryManager.BATTERY_STATUS_DISCHARGING:
?BatteryStatus?=?"放電狀態";
?break;
case?BatteryManager.BATTERY_STATUS_NOT_CHARGING:
?BatteryStatus?=?"未充電";
?break;
case?BatteryManager.BATTERY_STATUS_FULL:
?BatteryStatus?=?"充滿電";
?break;
case?BatteryManager.BATTERY_STATUS_UNKNOWN:
?BatteryStatus?=?"未知道狀態";
?break;
?}
?switch?(intent.getIntExtra("health",?BatteryManager.BATTERY_HEALTH_UNKNOWN))?{
case?BatteryManager.BATTERY_HEALTH_UNKNOWN:
?BatteryTemp?=?"未知錯誤";
?break;
case?BatteryManager.BATTERY_HEALTH_GOOD:
?BatteryTemp?=?"狀態良好";
?break;
case?BatteryManager.BATTERY_HEALTH_DEAD:
?BatteryTemp?=?"電池沒有電";
?break;
case?BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:
?BatteryTemp?=?"電池電壓過高";
?break;
case?BatteryManager.BATTERY_HEALTH_OVERHEAT:
?BatteryTemp?=?"電池過熱";
?break;
?}
?log(
"目前電量為"?+
?BatteryN?+
?"%?---?"?+
?BatteryStatus?+
?"\n"?+
?"電壓為"?+
?BatteryV?+
?"mV?---?"?+
?BatteryTemp?+
?"\n"?+
?"溫度為"?+
?BatteryT?*?0.1?+
?"℃"
?);
}
?},
});
//?註冊壹個系統?BroadcastReceiver,作為訪問電池計量之用這個不能直接在AndroidManifest.xml中註冊
let?filter?=?new?IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
context.registerReceiver(mBatInfoReceiver,?filter);
events.on("exit",?function?()?{
?unregisterReceiver();
});
function?unregisterReceiver()?{
?context.unregisterReceiver(mBatInfoReceiver);
?toastLog("關閉廣播監聽");
}
setInterval(function?()?{},?1000);