delphiXE7关于android 检测屏幕是否处于关闭状态

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.StdCtrls,
  FMX.Layouts, FMX.Memo;

type
  TForm1 = class(TForm)
    Button1: TButton;
    mmo1: TMemo;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses Androidapi.JNI.android.os.PowerManager,
     Androidapi.JNI.GraphicsContentViewText,
     Androidapi.JNI.JavaTypes,
     Androidapi.Helpers,
     Androidapi.JNIBridge;
{$R *.NmXhdpiPh.fmx ANDROID}

function GetPowerManager:JPowerManager ;
var
 Native:JObject ;
begin
 Native:=SharedActivityContext.getSystemService(TJContext.JavaClass.POWER_SERVICE);
 if not Assigned(Native) then
 begin
   raise Exception.Create(Could not locate Connectivity Service);
 end;
 Result:=TJPowerManager.Wrap((Native as ILocalObject).GetObjectID) ;
 if not Assigned(Result) then
 begin
   raise Exception.Create(Could not access Connectivity Manager);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 PowerManager:JPowerManager ;
begin
 PowerManager:=GetPowerManager ;
 if PowerManager.isScreenOn then
 begin
   ShowMessage(未关闭状态);
 end
 else
 begin
   ShowMessage(已经关闭状态);
 end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
 PowerManager:JPowerManager ;
begin
  PowerManager:=GetPowerManager ;
  if PowerManager.isScreenOn then
  begin
    mmo1.Lines.Add(没有关闭)
  end
  else
  begin
    mmo1.Lines.Add(关闭状态) ;
  end;
end;

end.
//====================================================
//
//  转换来自JavaClassToDelphiUnit
//  原始作者:ying32
//  QQ: 1444386932
//      396506155
//  Email:[email protected]
//
//  修改 By:Flying Wang & 爱吃猪头肉
//  请不要移除以上的任何信息。
//  请不要将本版本发到城通网盘,否则死全家。
//
//  Email:[email protected]
//
//  生成时间:2014/12/19 星期五 10:29:24
//  工具版本:1.0.2014.12.12
//
//====================================================
unit Androidapi.JNI.android.os.PowerManager;

interface

uses
  Androidapi.JNI.android.os.PowerManager_WakeLock,
  Androidapi.JNIBridge, 
  Androidapi.JNI.JavaTypes, 
  Androidapi.JNI.os;


type
// ===== Forward declarations =====

  JPowerManager = interface; //android.os.PowerManager

// ===== Interface declarations =====

  JPowerManagerClass = interface(JObjectClass)
  [{6600EE55-0B62-4AC6-8C41-9C0AD9AAE509}]
    { static Property Methods }
    {class} function _GetPARTIAL_WAKE_LOCK: Integer;
    {class} function _GetFULL_WAKE_LOCK: Integer;
    {class} function _GetSCREEN_BRIGHT_WAKE_LOCK: Integer;
    {class} function _GetSCREEN_DIM_WAKE_LOCK: Integer;
    {class} function _GetACQUIRE_CAUSES_WAKEUP: Integer;
    {class} function _GetON_AFTER_RELEASE: Integer;

    { static Methods }

    { static Property }
    {class} property PARTIAL_WAKE_LOCK: Integer read _GetPARTIAL_WAKE_LOCK;
    {class} property FULL_WAKE_LOCK: Integer read _GetFULL_WAKE_LOCK;
    {class} property SCREEN_BRIGHT_WAKE_LOCK: Integer read _GetSCREEN_BRIGHT_WAKE_LOCK;
    {class} property SCREEN_DIM_WAKE_LOCK: Integer read _GetSCREEN_DIM_WAKE_LOCK;
    {class} property ACQUIRE_CAUSES_WAKEUP: Integer read _GetACQUIRE_CAUSES_WAKEUP;
    {class} property ON_AFTER_RELEASE: Integer read _GetON_AFTER_RELEASE;
  end;

  [JavaSignature(android/os/PowerManager)]
  JPowerManager = interface(JObject)
  [{54AAD336-BDE4-447A-8A3C-235EEB4FF8EA}]
    { Property Methods }

    { methods }
    function newWakeLock(flags: Integer; tag: JString): JPowerManager_WakeLock; cdecl;
    procedure userActivity(when: Int64; noChangeLights: Boolean); cdecl;
    procedure goToSleep(time: Int64); cdecl;
    function isScreenOn: Boolean; cdecl;
    procedure reboot(reason: JString); cdecl;

    { Property }
  end;

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

implementation

procedure RegisterTypes;
begin
  TRegTypes.RegisterType(Androidapi.JNI.android.os.PowerManager.JPowerManager, 
    TypeInfo(Androidapi.JNI.android.os.PowerManager.JPowerManager));
end;


initialization
  RegisterTypes;
end.
//====================================================
//
//  转换来自JavaClassToDelphiUnit
//  原始作者:ying32
//  QQ: 1444386932
//      396506155
//  Email:[email protected]
//
//  修改 By:Flying Wang & 爱吃猪头肉
//  请不要移除以上的任何信息。
//  请不要将本版本发到城通网盘,否则死全家。
//
//  Email:[email protected]
//
//  生成时间:2014/12/19 星期五 10:29:44
//  工具版本:1.0.2014.12.12
//
//====================================================
unit Androidapi.JNI.android.os.PowerManager_WakeLock;

interface

uses
  Androidapi.JNI.android.os.WorkSource,
  Androidapi.JNIBridge,
  Androidapi.JNI.JavaTypes, 
  Androidapi.JNI.os;


type
// ===== Forward declarations =====

  JPowerManager_WakeLock = interface; //android.os.PowerManager$WakeLock

// ===== Interface declarations =====

  JPowerManager_WakeLockClass = interface(JObjectClass)
  [{5394217C-F576-4C1C-87B7-1EECC1893E74}]
    { static Property Methods }

    { static Methods }

    { static Property }
  end;

  [JavaSignature(android/os/PowerManager$WakeLock)]
  JPowerManager_WakeLock = interface(JObject)
  [{BD52A293-0D29-4637-B236-00D0DA2D50B1}]
    { Property Methods }

    { methods }
    procedure setReferenceCounted(value: Boolean); cdecl;
    procedure acquire; cdecl; overload;
    procedure acquire(timeout: Int64); cdecl; overload;
    procedure release; cdecl;
    function isHeld: Boolean; cdecl;
    procedure setWorkSource(ws: JWorkSource); cdecl;
    function toString: JString; cdecl;

    { Property }
  end;

  TJPowerManager_WakeLock = class(TJavaGenericImport<JPowerManager_WakeLockClass, JPowerManager_WakeLock>) end;

implementation

procedure RegisterTypes;
begin
  TRegTypes.RegisterType(Androidapi.JNI.android.os.PowerManager_WakeLock.JPowerManager_WakeLock, 
    TypeInfo(Androidapi.JNI.android.os.PowerManager_WakeLock.JPowerManager_WakeLock));
end;


initialization
  RegisterTypes;
end.
//====================================================
//
//  转换来自JavaClassToDelphiUnit
//  原始作者:ying32
//  QQ: 1444386932
//      396506155
//  Email:[email protected]
//
//  修改 By:Flying Wang & 爱吃猪头肉
//  请不要移除以上的任何信息。
//  请不要将本版本发到城通网盘,否则死全家。
//
//  Email:[email protected]
//
//  生成时间:2014/12/19 星期五 10:37:54
//  工具版本:1.0.2014.12.12
//
//====================================================
unit Androidapi.JNI.android.os.WorkSource;

interface

uses
  Androidapi.JNIBridge, 
  Androidapi.JNI.JavaTypes, 
  Androidapi.JNI.os;


type
// ===== Forward declarations =====

  JWorkSource = interface; //android.os.WorkSource

// ===== Interface declarations =====

  JWorkSourceClass = interface(JObjectClass)
  [{B839C6E0-F417-49DF-8DC9-51FD9BF7C217}]
    { static Property Methods }
    {class} function _GetCREATOR: JParcelable_Creator;

    { static Methods }
    {class} function init: JWorkSource; cdecl; overload;
    {class} function init(orig: JWorkSource): JWorkSource; cdecl; overload;

    { static Property }
    {class} property CREATOR: JParcelable_Creator read _GetCREATOR;
  end;

  [JavaSignature(android/os/WorkSource)]
  JWorkSource = interface(JObject)
  [{C0180882-E13D-4E8A-BDC9-108629C9F981}]
    { Property Methods }

    { methods }
    procedure clear; cdecl;
    function diff(other: JWorkSource): Boolean; cdecl;
    procedure &set(other: JWorkSource); cdecl;
    function add(other: JWorkSource): Boolean; cdecl;
    function remove(other: JWorkSource): Boolean; cdecl;
    function describeContents: Integer; cdecl;
    procedure writeToParcel(dest: JParcel; flags: Integer); cdecl;

    { Property }
  end;

  TJWorkSource = class(TJavaGenericImport<JWorkSourceClass, JWorkSource>) end;

implementation

procedure RegisterTypes;
begin
  TRegTypes.RegisterType(Androidapi.JNI.android.os.WorkSource.JWorkSource, 
    TypeInfo(Androidapi.JNI.android.os.WorkSource.JWorkSource));
end;


initialization
  RegisterTypes;
end.

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。