zoukankan      html  css  js  c++  java
  • [转]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.

  • 相关阅读:
    Tomcat server.xml中配置的connectionTimeout参数无效?客户端等待超时时间
    org.joda.time.datetime.plusMonths 添加月数,缺少天数。
    微信小程序苹果手机请求地址 报错404,安卓可以正常请求
    在Ubuntu 18.04 Desktop图形中配置静态和动态IP
    Ubuntu16.04设置静态IP或动态ip(DHCP)
    linux监控命令
    lsof命令详解
    通过程序名称kill掉所有的进程
    linux目录和Windows目录对比
    Linux系统下查找安装包所在目录
  • 原文地址:https://www.cnblogs.com/qiufeng2014/p/3706133.html
Copyright © 2011-2022 走看看