本文整理自网络,侵删。
您可能想知道电池的电量。在Android上,电池管理器会广播有关电池的意图信息。
要找出电量,请获取电池电量和电量并计算百分比。该代码基于Android开发人员培训文章“监视电池电量和充电状态”。
样例代码将按钮和列表框放在表单上
只需按一下按钮即可检测电量将检测到的%值写入列表框描述该过程。(已通过10.2 Tokyo,Nexus 5和Android 5.1.1确认)
unit Unit1;
interface
uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, FMX.Layouts, FMX.ListBox, Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes ;
type TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; procedure Button1Click(Sender: TObject); private { private 宣言 } public { public 宣言 } end;
var Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);var ifl: JIntentFilter; ctx: JContext; bStatus: JIntent; level, scale: Integer;begin//确定当前充电状态(获取电池状态意图)
ifl := TJintentFilter.JavaClass.init(TJIntent.JavaClass.ACTION_BATTERY_CHANGED); ctx := TAndroidHelper.Context; bStatus := ctx.registerReceiver(nil, ifl);
//BatteryManager.EXTRA_LEVEL字符串//现实该水平 // BatteryManager.EXTRA_SCALE的现实串标度
level := bStatus.getIntExtra(StringToJString('level'), -1); scale := bStatus.getIntExtra(StringToJstring('scale'), -1);
ListBox1.Items.Add('Battery');//计算的电荷%状态
ListBox1.Items.Add(IntToStr((100*level) div scale));end;
end.
相关阅读 >>
更多相关阅读请进入《Delphi》频道 >>