古詩詞大全網 - 成語經典 - AutoJs : 獲取手機電池狀態

AutoJs : 獲取手機電池狀態

importClass(android.content.Intent);

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);