JBatteryManager>)
end;
在窗体上放置一个按钮(TButton)和一个注释(TMemo)。
001
为按钮添加一个OnClick事件。
uses Androidapi.JNI.JavaTypes,
Androidapi.JNIBridge,
FMX.Platform.Android,
Androidapi.JNI.GraphicsContentViewText;
procedure TForm1.Button1Click(Sender: TObject);
var
Filter: JIntentFilter;
Battery: JIntent;
Status, Health, Level, Scale, IconSmall, Plugged, Voltage,
Temperature: Integer;
Present: Boolean;
Technology, StatusString, HealthString, ScString: string;
begin
Filter := TJIntentFilter.JavaClass.init
(TJIntent.JavaClass.ACTION_BATTERY_CHANGED);
Battery := MainActivity.registerReceiver(nil, Filter);
Status := Battery.getIntExtra(StringToJString('status'), 0);
Health := Battery.getIntExtra(StringToJString('health'), 0);
Present := Battery.getBooleanExtra(StringToJString('present'), false);
Level := Battery.getIntExtra(StringToJString('level'), 0);
Scale := Battery.getIntExtra(StringToJString('scale'), 0);
IconSmall := Battery.getIntExtra(StringToJString('icon-small'), 0);
Plugged := Battery.getIntExtra(StringToJString('plugged'), 0);
Voltage := Battery.getIntExtra(StringToJString('voltage'), 0);
Temperature := Battery.getIntExtra(StringToJString('temperature'), 0);
Technology := JStringToString
(Battery.getStringExtra(StringToJString('technology')));
StatusString := '';
if Status = TJBatteryManager.JavaClass.BATTERY_STATUS_UNKNOWN then
StatusString := 'UNKNOWN'
else if Status = TJBatteryManager.JavaClass.BATTERY_STATUS_CHARGING then
StatusString := 'CHARGING'
else if Status = TJBatteryManager.JavaClass.BATTERY_STATUS_DISCHARGING then
StatusString := 'DISCHARGING'
else if Status = TJBatteryManager.JavaClass.BATTERY_STATUS_NOT_CHARGING then
StatusString := 'NOT CHARGING'
else if Status = TJBatteryManager.JavaClass.BATTERY_STATUS_FULL then
StatusString := 'FULL';
HealthString := '';
if Health = TJBatteryManager.JavaClass.BATTERY_HEALTH_UNKNOWN then
HealthString := 'UNKNOWN'
else if Health = TJBatteryManager.JavaClass.BATTERY_HEALTH_GOOD then
HealthString := 'GOOD'
else if Health = TJBatteryManager.JavaClass.BATTERY_HEALTH_OVERHEAT then
HealthString := 'OVERHEAT'
else if Health = TJBatteryManager.JavaClass.BATTERY_HEALTH_DEAD then
HealthString := 'DEAD'
else if Health = TJBatteryManager.JavaClass.BATTERY_HEALTH_OVER_VOLTAGE then
HealthString := 'OVER VOLTAGE'
else if Health = TJBatteryManager.JavaClass.BATTERY_HEALTH_UNSPECIFIED_FAILURE
then
HealthString := 'UNSPECIFIED FAILURE';
ScString := '';
if Plugged = TJBatteryManager.JavaClass.BATTERY_PLUGGED_AC then
ScString := 'AC'
else if Plugged = TJBatteryManager.JavaClass.BATTERY_PLUGGED_USB then
ScString := 'USB';
Memo1.Lines.Clear;
Memo1.Lines.Add(Format('%s=%s', ['Status(充電状態)', StatusString]));
Memo1.Lines.Add(Format('%s=%s', ['Health(电池状态)', HealthString]));
Memo1.Lines.Add(Format('%s=%s', ['Present(是否存在电池)',
BoolToStr(Present, True)]));
Memo1.Lines.Add(Format('%s=%d', ['Level(电池余量)', Level]));
Memo1.Lines.Add(Format('%s=%d', ['Scale(最大电池余量)', Scale]));
Memo1.Lines.Add(Format('%s=%d', ['Icon Small', IconSmall]));
Memo1.Lines.Add(Format('%s=%s', ['Plugged(AC or USB)', ScString]));
Memo1.Lines.Add(Format('%s=%d', ['Voltage(电池电压)', Voltage]));
Memo1.Lines.Add(Format('%s=%d', ['Temperature(电池电压)', Temperature]));
Memo1.Lines.Add(Format('%s=%s', ['Technology', Technology]));
end;
运行该应用程序,然后按按钮以显示电池信息。