[转]delphi xe6 android屏幕操持常亮
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屏幕操持常亮的更多相关文章
- Android实例-屏幕操持常亮(XE8+小米2)
相关资料: http://www.bubuko.com/infodetail-163304.html 结果: 1.打开权限Wake lock为True. 第三方单元: unit Android.JNI ...
- 《Delphi XE6 android 编程入门教程》推荐
近5.6年已经没有看见关于delphi的新技术的书出来了(看来在国内delphi的使用量确实很低了), 高勇同学最近出了一本<Delphi XE6 android 编程入门教程>,上周刚拿 ...
- Delphi XE6 Android拨号函数
http://blog.sina.com.cn/s/blog_44fa172f0101rpex.html Delphi XE6 Android拨号函数 (2014-05-07 17:48:51) 转载 ...
- android的屏幕保持常亮
1.Wake Lock是一种锁的机制 在Manifest.xml文件里面用user-permission声明.代码如下: 这种方法,在安装apk时,系统会提示安装人是否允许使用禁止休眠功能. < ...
- 关于android的屏幕保持常亮
实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明,一种是在代码里面修改LayoutParams的标志位.具体如下: 1.在Manifest.xml文件里面用user-permis ...
- Delphi xe6 android Popup控件的使用
1.拖放Label.button和popup控件到form 2.在structure将button1和label1拖到popup1上,然后调整布局就可以 Popup有几个重要的属性: 1.Placem ...
- delphi xe6 android ListView增加 Header或Footer 的方法
var Item1: TListViewItem;begin Item1 := ListView1.Items.Add; Item1.Purpose:=TListItemPurpose. ...
- Xamarin Essentials教程屏幕常亮ScreenLock
Xamarin Essentials教程屏幕常亮ScreenLock 在一段时间内,如果用户没有对设备进行操作,设备就会自动关闭屏幕.用户必须手动操作,才能点亮屏幕.但是很多应用需要在用户没有操作 ...
- Android让手机主动亮屏的代码
我们在做电子阅读器的时候可能会要求屏幕保持常亮,不希望它熄灭.它的原理也是利用系统服务,来操纵底层设备. 一.系统服务——PowerManager PowerManager.java就是管理我们电源方 ...
随机推荐
- 输入一个链表,输出该链表中倒数第k个结点
package suanfa; import suanfa.doubleLinkedList.Node; public class solution { public Node find(Node h ...
- MA82G5D16AS16 主频调试记录
MA82G5D16AS16 主频调试记录 当 SCKS 设置 为 MCKDO / 128 时 MCU 的电流为 0.58mA,100UF 电容可以维持 0.5S,大概可以满足. 但是需要注意外围的线路 ...
- python3 之logging模块
logging.getLogger(name=None)Return a logger with the specified name or, if name is None, return a lo ...
- Azure上采用Powershell从已有的VHD创建VM
刚刚的一篇Blog采用Json Template的方式从已有的VHD创建了一台新的VM.由于Json Template封装的比较好,可以改的内容不多. 下面将介绍通过用Powershell来从已有的V ...
- Java多线程中的常用方法
本文将带你讲诉Java多线程中的常用方法 Java多线程中的常用方法有如下几个 start,run,sleep,wait,notify,notifyAll,join,isAlive,current ...
- asp.netcore di 实现批量接口注入
废话少说,先上代码 public static Dictionary<Type, Type[]> GetImpleAndInterfaces(string assemblyName,str ...
- JCTF 2014(Misc)
小试身手: 点击下载附件 res/raw/hehe,打开 得到flag
- 渗透测试框架-Fsociety
下载项目并赋予权限,打开 ┌─[root@sch01ar]─[/sch01ar] └──╼ #git clone https://github.com/Manisso/fsociety ┌─[root ...
- 第八章 Java中的并发工具类
等待多线程完成的CountDownLatch countDownLatch允许一个或多个线程等待其他线程完成操作. public class CountDownLatchTest { static C ...
- java 多线程系列基础篇(二)
概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程 ...