本文整理自网络,侵删。
这是先前发布在EDN(Embarcadero开发人员网络)上的文章的抄录。
对于播放视频的应用,您可能不想让屏幕进入休眠状态。在Android上,可以使用Power Manager从应用程序一侧打开/关闭睡眠状态。
笔记由于从睡眠中唤醒会影响电池消耗,因此应用必须始终考虑唤醒逻辑。此外,为此,您需要在项目选项中选中WakeLock并设置权限。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// 以下追加 , Androidapi.Helpers , Androidapi.Jni.Os , Androidapi.Jni.JavaTypes , Androidapi.Jni.GraphicsContentViewText// ;
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { private } PW: JPowerManager; WL: JPowerManager_WakeLock; public { public } end;
var Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);begin//用唤醒锁唤醒
//用getSystemService
PW := TJPowerManager.Wrap(TAndroidHelper.Context.getSystemService(TJContext.JavaClass.POWER_SERVICE)); if PW <> nil then begin //获取电源管理器的激活锁定 WL := PW.newWakeLock (TJPowerManager.JavaClass.SCREEN_BRIGHT_WAKE_LOCK or TJPowerManager.JavaClass.ACQUIRE_CAUSES_WAKEUP, StringToJString('Power Manager Test')); if WL <> nil then WL.acquire; //获取运行激活锁定执行 end else Button1.Text := 'Not use Power Manager';end;
procedure TForm1.Button2Click(Sender: TObject);begin//推出激活锁定释放与
if WL <> nil then //是激活锁定集合? WL.release; // 解除end;
end.
相关阅读 >>
更多相关阅读请进入《Delphi》频道 >>