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 写dll注入器

Delphi实现图像反色实例4种方法

Delphi idhttp控件学习(图片下载)

Delphi 控制台程序加图标方法

Delphi动态创建控件的例子

Delphi 反转内存的函数

Delphi获取webbrowser中的元素的值

Delphi 字符串常识

Delphi 根据文件扩展名判断文件类型函数写法

dephi获取系统常量

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



打赏

取消

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

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

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

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

评论

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