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:yuanfen3287@vip.qq.com
//
//  修改 By:Flying Wang & 爱吃猪头肉
//  请不要移除以上的任何信息。
//  请不要将本版本发到城通网盘,否则死全家。
//
//  Email:1765535979@qq.com
//
//  生成时间: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:yuanfen3287@vip.qq.com
//
//  修改 By:Flying Wang & 爱吃猪头肉
//  请不要移除以上的任何信息。
//  请不要将本版本发到城通网盘,否则死全家。
//
//  Email:1765535979@qq.com
//
//  生成时间: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:yuanfen3287@vip.qq.com
//
//  修改 By:Flying Wang & 爱吃猪头肉
//  请不要移除以上的任何信息。
//  请不要将本版本发到城通网盘,否则死全家。
//
//  Email:1765535979@qq.com
//
//  生成时间: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.

相关阅读 >>

Delphi安卓定位权限申请

Delphi 遍历控件

Delphi 2009 泛型容器单元(generics.collections)[3]: tstack<t>

Delphi中对excel表格文件的导入和导出操作

Delphi tgifimage:timage显示gif动画

Delphi 线程中修改主窗体的控件内容

Delphi 安卓如何获取当前系统语言

firemonkey下使用stylebook的一些经验

Delphi 查找某目录下的特定文件

Delphi 得到执行程序的当前所在完整路径

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...