Перейти к содержанию
Fire Monkey от А до Я
  • 0

Программное управление подсветкой экрана


S_007

Вопрос

Рекомендуемые сообщения

  • 0

http://www.fmxexpress.com/configure-android-system-settings-from-delphi-xe5-firemonkey/

Там SCREEN_OFF_TIMEOUT, яркость по аналогии.

P.S. Что бы перевести какой-то код с андоидовской явы на FireMonkey, я в гугле спрашиваю это словосочитание, плюс прибавляю FireMonkey. В данном случае что-то типа:

Запрос

Способ срабатывает в ~95%.



 

Ссылка на комментарий
  • 0

Akad спасибо за ответ

получилось так, может кому пригодится... Delphi 10.2

В опциях проекта - Uses permissions - включить  WRITE SETTINGS

 

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.Helpers.Android,
  Androidapi.Helpers,
  Androidapi.JNI.Provider,
  Androidapi.JNI.App,
  Androidapi.JNI.GraphicsContentViewText, FMX.Controls.Presentation,
  FMX.StdCtrls;

type
  TForm1 = class(TForm)
    Button_Plus: TButton;
    Button_Minus: TButton;
    Label1: TLabel;
    procedure Button_MinusClick(Sender: TObject);
    procedure BrightnesSet;
    procedure Button_PlusClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  brightness:integer;

implementation

{$R *.fmx}

procedure TForm1.BrightnesSet;
var
  Resolver: JContentResolver;
  AttainedBrightness: Single;
  LayoutParams: JWindowManager_LayoutParams;
  Window: JWindow;
begin

    label1.Text := inttostr(brightness);

    Resolver := TAndroidHelper.ContentResolver;

    //Отключаем автоматический режим
    TJSettings_System.JavaClass.putInt(Resolver,TJSettings_System.JavaClass.SCREEN_BRIGHTNESS_MODE,TJSettings_System.JavaClass.SCREEN_BRIGHTNESS_MODE_MANUAL);
    //Устанавливаем нужную яркость
    TJSettings_System.JavaClass.putInt(Resolver,TJSettings_System.JavaClass.SCREEN_BRIGHTNESS,brightness);
    try
        AttainedBrightness := TJSettings_System.JavaClass.getInt(Resolver,TJSettings_System.JavaClass.SCREEN_BRIGHTNESS);
        CallInUIThread(
        procedure
        begin
            Window := TAndroidHelper.Activity.getWindow;
            LayoutParams := Window.getAttributes;
            LayoutParams.screenBrightness := AttainedBrightness / 255;
            Window.setAttributes(LayoutParams);
        end);
    except

    end;

end;

procedure TForm1.Button_MinusClick(Sender: TObject);
begin
     if brightness > 20 then
     begin
        brightness := brightness - 5;
        BrightnesSet;
     end;
end;


procedure TForm1.Button_PlusClick(Sender: TObject);
begin
    if brightness < 255 then
    begin
        brightness := brightness + 5;
        BrightnesSet;
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
     brightness := 20;
end;

end.

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...