Delphi识别Android设备的电池电量


本文整理自网络,侵删。

 
您可能想知道电池的电量。
在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 win10系统已管理员的权限运行应用程序

Delphi cpu窗口的扩展学习

Delphi 常用api 函数

Delphi 接口尚未调用尚未调用coinitialize解决办法

cvcode.pas

Delphi中输入法模式imemode属性的解释

Delphi 捕捉全局异常错误的方法

Delphi之format函数

Delphi adoconnection1连接mssql数据库方法

Delphi xe下的fmx中压缩图片

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...