1) setting the Project Options, Uses Permissions, Wake lock = True

2) Adding Android.JNI.PowerManager to the uses clause

3) call:

 AcquireWakeLock; // at start up.

 ReleaseWakeLock; // at shutdown.

//-----------------------------------------------------------

unit Android.JNI.PowerManager;

interface

function AcquireWakeLock : Boolean;

procedure ReleaseWakeLock;

implementation

uses

System.SysUtils,

Androidapi.Helpers,

Androidapi.JNI,

Androidapi.JNIBridge,

Androidapi.JNI.GraphicsContentViewText,

Androidapi.JNI.JavaTypes,

FMX.Helpers.Android;

type

JPowerManager = interface;

JWakeLock = interface;

JWakeLockClass = interface(JObjectClass)

['{918E171F-CDB8-4464-9507-F49272CE7636}']

end;

[JavaSignature('android/os/PowerManager$WakeLock')]

JWakeLock = interface(JObject)

['{D17B1136-FA15-4AEB-85B1-2D490F0FD320}']

{Methods}

procedure acquire; cdecl;

procedure release; cdecl;

function isHeld: Boolean; cdecl;

end;

TJWakeLock = class(TJavaGenericImport<JWakeLockClass, JWakeLock>) end;

JPowerManagerClass = interface(JObjectClass)

['{7D0696A2-ADEA-4158-AE1F-5E720DEDBCF9}']

{Property methods}

function _GetFULL_WAKE_LOCK: Integer; cdecl;

function _GetSCREEN_BRIGHT_WAKE_LOCK: Integer; cdecl;

function _GetSCREEN_DIM_WAKE_LOCK: Integer; cdecl;

function _GetPARTIAL_WAKE_LOCK: Integer; cdecl;

{Properties}

//Keep screen on bright & keyboard on

//Deprecated in API level 17 - Jelly Bean MR1

property FULL_WAKE_LOCK: Integer read _GetFULL_WAKE_LOCK;

//Keep screen on bright

//Deprecated in API level 13 - Honeycomb MR2

property SCREEN_BRIGHT_WAKE_LOCK: Integer read _GetSCREEN_BRIGHT_WAKE_LOCK;

//Keep screen on dim

//Deprecated in API level 17 - Jelly Bean MR1

property SCREEN_DIM_WAKE_LOCK: Integer read _GetSCREEN_DIM_WAKE_LOCK;

//Keep CPU running, screen & keyboard can go off

property PARTIAL_WAKE_LOCK: Integer read _GetPARTIAL_WAKE_LOCK;

end;

[JavaSignature('android/os/PowerManager')]

JPowerManager = interface(JObject)

['{DEAED658-4353-4D17-B0A3-8179E48BE87F}']

{Methods}

function newWakeLock(levelAndFlags: Integer; tag: JString): JWakeLock; cdecl;

end;

TJPowerManager = class(TJavaGenericImport<JPowerManagerClass, JPowerManager>) end;

function GetPowerManager: JPowerManager;

var

PowerServiceNative: JObject;

begin

PowerServiceNative := SharedActivityContext.getSystemService(

TJContext.JavaClass.POWER_SERVICE);

if not Assigned(PowerServiceNative) then

raise Exception.Create('Could not locate Power Service');

Result := TJPowerManager.Wrap(

(PowerServiceNative as ILocalObject).GetObjectID);

if not Assigned(Result) then

raise Exception.Create('Could not access Power Manager');

end;

var

WakeLock: JWakeLock = nil;

function AcquireWakeLock: Boolean;

var

PowerManager: JPowerManager;

begin

Result := Assigned(WakeLock);

if not Result then

begin

PowerManager := GetPowerManager;

WakeLock := PowerManager.newWakeLock(

TJPowerManager.JavaClass.SCREEN_BRIGHT_WAKE_LOCK,

StringToJString('Runing'));

Result := Assigned(WakeLock);

end;

if Result then

begin

if not WakeLock.IsHeld then

begin

WakeLock.acquire;

Result := WakeLock.isHeld

end;

end;

end;

procedure ReleaseWakeLock;

begin

if Assigned(WakeLock) then

begin

WakeLock.release;

WakeLock := nil

end;

end;

end.

[转]delphi xe6 android屏幕操持常亮的更多相关文章

  1. Android实例-屏幕操持常亮(XE8+小米2)

    相关资料: http://www.bubuko.com/infodetail-163304.html 结果: 1.打开权限Wake lock为True. 第三方单元: unit Android.JNI ...

  2. 《Delphi XE6 android 编程入门教程》推荐

    近5.6年已经没有看见关于delphi的新技术的书出来了(看来在国内delphi的使用量确实很低了), 高勇同学最近出了一本<Delphi XE6 android 编程入门教程>,上周刚拿 ...

  3. Delphi XE6 Android拨号函数

    http://blog.sina.com.cn/s/blog_44fa172f0101rpex.html Delphi XE6 Android拨号函数 (2014-05-07 17:48:51) 转载 ...

  4. android的屏幕保持常亮

    1.Wake Lock是一种锁的机制 在Manifest.xml文件里面用user-permission声明.代码如下: 这种方法,在安装apk时,系统会提示安装人是否允许使用禁止休眠功能. < ...

  5. 关于android的屏幕保持常亮

    实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明,一种是在代码里面修改LayoutParams的标志位.具体如下: 1.在Manifest.xml文件里面用user-permis ...

  6. Delphi xe6 android Popup控件的使用

    1.拖放Label.button和popup控件到form 2.在structure将button1和label1拖到popup1上,然后调整布局就可以 Popup有几个重要的属性: 1.Placem ...

  7. delphi xe6 android ListView增加 Header或Footer 的方法

    var  Item1: TListViewItem;begin    Item1 := ListView1.Items.Add;    Item1.Purpose:=TListItemPurpose. ...

  8. Xamarin Essentials教程屏幕常亮ScreenLock

    Xamarin Essentials教程屏幕常亮ScreenLock   在一段时间内,如果用户没有对设备进行操作,设备就会自动关闭屏幕.用户必须手动操作,才能点亮屏幕.但是很多应用需要在用户没有操作 ...

  9. Android让手机主动亮屏的代码

    我们在做电子阅读器的时候可能会要求屏幕保持常亮,不希望它熄灭.它的原理也是利用系统服务,来操纵底层设备. 一.系统服务——PowerManager PowerManager.java就是管理我们电源方 ...

随机推荐

  1. DP 问题

    什么时候使用DP: 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理.(这句话可理解为先将复杂的问题简单化, 达到最简后的解题公式同样可以解复杂情况 ...

  2. Windbg内核调试之三: 调试驱动

    这次我们通过一个实际调试驱动的例子,来逐步体会Windbg在内核调试中的作用.由于条件所限,大多数情况下,很多人都是用VMware+Windbg调试内核(VMware的确是个好东西).但这样的调试需要 ...

  3. MySQL 利用xtrabackup进行增量备份详细过程汇总 (转)

    Xtrabackup下载.安装以及全量备份请参考:http://blog.itpub.net/26230597/viewspace-1465772/ 1,创建mysql备份用户 mysql -uroo ...

  4. ASP.NET MVC5中View显示Html

    @Html.Raw(Model.Name) @(new HtmlString(Model.Name));

  5. java继承实例基础

    总结:多态.重写.构造方法调用 package com.a; public class fsd { int a = 23; public fsd() { System.out.println(4444 ...

  6. java基础知识(15)----StringBuffer与StringBuilder

    StringBuffer字符串缓冲区: 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符.特点:1:可以对字符串内容进行修改.2:是一个容器.3:是可变长度的.4:缓冲区中可以存储任意类型 ...

  7. phonegap中使用自带浏览器打开链接

    <center><a id="ssl2" href="#" onclick="window.open('http://127.0.0 ...

  8. vue-cli脚手架build目录中的karma.conf.js配置文件

    本文系统讲解vue-cli脚手架build目录中的karma.conf.js配置文件 这个配置文件是命令 npm run unit 的入口配置文件,主要用于单元测试 这条命令的内容如下 "c ...

  9. delphi 从 TWebbrowse组件中获取图片

    在 delphi 中使用 TWebbrowse 组件,虽然效率不如用(idhttp之类)模拟操作效率高.但其难度低,上手快,简单粗暴有效. 从网上搜到的处理此问题的文章大多是 ctrl + c 复制到 ...

  10. 很详细的Nginx配置说明

    这篇文章主要为大家分享了一篇很详细的Nginx配置说明,主要内容包括Nginx常用功能.Nginx配置文件结构,想要了解Nginx配置的朋友不要错过,参考一下   Nginx是lgor Sysoev为 ...