delphi识别Android设备的电池电量  
官方Delphi 学习QQ群: 682628230(三千人)
频道

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.

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.035882949829102 seconds