我要写一个 APP 是播放视频的。播放视频的时候,手机过一会自动锁屏。这个是手机本身的设置。如何在我的程序中禁止掉这个?
经过搜索,安卓下有办法了。请见:安卓下如何用 WakeLock
上述 StackOverflow 问题解答里面,给出了一个单元:Android.JNI.PowerManager.pas,我搜了一下 Delphi 提供的源代码,一堆 Android.JNI.xx 但没有这个文件。
我自己写了个测试程序,把这个单元放进去,然后在程序里增加一个按钮,代码:
procedure TForm2.Button1Click(Sender: TObject);
begin
if AcquireWakeLock then ShowMessage('True');
end;
编译发布到手机,点按钮,出异常。提示是权限问题。在 Delphi IDE 里面,打开工程的 Option 找到左边的 User Permissions 一栏,在右边找到 Wake lock 一项,改设置为 True。重新编译。
在手机里点这个按钮,显示 True,正常了。观察手机,确实不会自动熄屏,锁屏了。搞定!