• 0
Tarik02

Как показать форму в Android при заблокированном устройстве

Вопросы

10 ответов на этот вопрос

  • 0

Простите, а зачем?

Вот лежит у меня в кармане телефон. Тихо, спокойно лежит. И тут какое-то приложение решает, что нужно разблокировать экран и что-то показать. Во-первых, легко могут пойти несанкционированные нажатия (мотыляется телефон во внутреннем кармане куртки, фиг знает как сенсор экрана будет реагировать), а во-вторых включается экран и начинает усиленно садиться батарейка.

 

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

 

"Правильные" приложения показывают уведомление в "шторке", сопровождаемое звуковым сигналом. Услышал пользователь - сам разблокировал экран и пошел разбираться. Не услышал - значит чем-то занят, нечего его беспокоить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Простите, а зачем?

Вот лежит у меня в кармане телефон. Тихо, спокойно лежит. И тут какое-то приложение решает, что нужно разблокировать экран и что-то показать. Во-первых, легко могут пойти несанкционированные нажатия (мотыляется телефон во внутреннем кармане куртки, фиг знает как сенсор экрана будет реагировать), а во-вторых включается экран и начинает усиленно садиться батарейка.

 

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

 

"Правильные" приложения показывают уведомление в "шторке", сопровождаемое звуковым сигналом. Услышал пользователь - сам разблокировал экран и пошел разбираться. Не услышал - значит чем-то занят, нечего его беспокоить.

 

Если это приложение ориентировано для функций охраны, то нужно и уведомить что произошла тревога, и показать на экране, и воспроизвести звук, приложение ориентируется на разных людей, некоторые из них могут быть просто слабо слышать, а телефон будет не в кармане. Но по моему: проще в настройках самого приложения запретить/разрешить вызывать тревожную форму, нежели просто решать за пользователя надо это ему или нет. Я реально пока еще не видел "Правильных" охранных приложений которые бы о тревоге сообщали в шторку, и тихо молчали.

 

Просто предполагаю что просто наверно никто не занимался этим вопросом поскольку просто не было необходимости. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

1) как вы представляете себе разблокировку устройства? т.е. допустим у пользователя установлена блокировка не просто "провести пальцем", а напирмер: Knock Code, Фейсконтроль, Графичекий ключ, PIN-код или вообще просто пароль. Это уже попахивает лёгким вредоносом...

2) Покажите приложения, которые умеют разблокировать экран и отображать сразу форму приложения.

 

 

p.s. Единственный пример, который я вижу у себя на 4.4.2 - это звонилка, она НЕ разблокирует телефон, но выводит то ли форму, то ли огромное уведомление (виджет) о звонке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Ну, фейсбуком, я не пользуюсь. В любом случае, я не встречал ни одной программы, которая могла бы разблокировать экран. Фейсбук снимает блокировку устройства? Более того, считаю, что такое можно реализовать только с рут-правами, да и то... есть сомнения. Надо читать Андроид АПИ и стековерфлоу :)

 

Ап. Покопался малость в апи, для отвода блокировки на задний план, можно попробовать использовать флаг "FLAG_SHOW_WHEN_LOCKED", как только форму закроют, экран блокировки вернётся на своё место. Но разблокировать залоченное устройство не получится.

 

Ап.2. Для блокировки "провести пальцем" можно использовать флаг "FLAG_DISMISS_KEYGUARD"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Ну, фейсбуком, я не пользуюсь. В любом случае, я не встречал ни одной программы, которая могла бы разблокировать экран. Фейсбук снимает блокировку устройства? Более того, считаю, что такое можно реализовать только с рут-правами, да и то... есть сомнения. Надо читать Андроид АПИ и стековерфлоу :)

 

Ап. Покопался малость в апи, для отвода блокировки на задний план, можно попробовать использовать флаг "FLAG_SHOW_WHEN_LOCKED", как только форму закроют, экран блокировки вернётся на своё место. Но разблокировать залоченное устройство не получится.

 

Ап.2. Для блокировки "провести пальцем" можно использовать флаг "FLAG_DISMISS_KEYGUARD"

 

Спасибо Вам большое вы сильно помогли. В этом то и суть чтобы пользователя уведомить не через шторку, а и вибрацией и звуком и по возможности тревожной формой, если конечно устройство не заблокировано графическим ключем или паролем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 09.02.2016 в 15:20, kami сказал:

Простите, а зачем?

ОКАЗАЛОСЬ, ЧТО лично для меня это оказалось бы удобным при отладке на устройстве.

Запустил из среды приложение  на устройстве и приходится ждать, пока оно скомпилируется, установится и запуститься... Это ж тебе не винда :) Сидеть и пялиться на экран несколько минут - напрягает.

А если бы приложение при запуске разблокировало устройство, можно было не пялиться. Запустил и занимаешься чем-то другим.

Изменено пользователем x11

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 09.02.2016 в 17:13, Andrey Efimov сказал:

) как вы представляете себе разблокировку устройства? т.е. допустим у пользователя установлена блокировка не просто "провести пальцем", а напирмер: Knock Code, Фейсконтроль, Графичекий ключ, PIN-код или вообще просто пароль. Это уже попахивает лёгким вредоносом...

 

хотя бы экран подсветить/включить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

обычно в разделе для разработчиков есть опция "не отключать экран при зарядке" или что-то типа того.

вот собсно и решение. пока вы на шнурке его держите, сам он не отключится

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От zekelive
      Добрый день, товарищи. Если кто сталкивался, подскажите) в потоке создаются картинкив виде плиток и прочие компоненты и падают на scrollbox.  Но в runtime пролистывание лагает, да в целом вся программа подлагивает. Можно ли как то реализовать подгрузка в фоне без ущерба? Или может ещё какой способ есть?
    • От Вольдемар
      Пользуюсь в своем Android приложении этим компонентом, вроде всё работает. Но хотелось бы асинхронности. Помогите пожалуйста с примером, как сделать асинхронность и получать результат после Post. Спасибо
    • От Aptyp
      На моём Samsung Note 5 вокруг букв проглядываются линии. Причём пробовал 3 различных разрешения экрана, ничего не меняется. У друга на Xiaomi Redmi 4x такого не наблюдается.
      Что это может быть?
       


    • От om.pranayama
      Здравствуйте форумчане и профессионалы разработчики.
      Компилирую проект через C++Builder 10.2  под Android
      Появилась следующая проблема при использовании компонента TBitmapListAnimation
      Если приложение свернуть, а затем развернуть - то появляются жуткие глитчи в ввиде чёрных фонов вокруг компонентов, типа TImage, TButton.
      В Windows такая проблема - не наблюдается.
      Попытки вызвать Repaint или даже Invalidate для всей формы - положительного результата не дают.
      Пожалуйста, помогите решить эту проблему.
      //--------------------------------------------------------------------------------------------------------------------------------------------
      ТЕМУ МОЖНО УДАЛЯТЬ
      Причина не в TBitmapListAnimation а в TAniIndicator, который работал совместно с TBitmapListAnimation.
      Приношу извинения за беспокойство. Проблема была в TAniIndicator. Буду разбираться почему он так себя безобразно ведёт.
      Тему можно удалять.
    • От Aptyp
      В приложении:
          procedure TForm7.Button1Click(Sender: TObject);     var AIntent: JIntent;         AServiceName: string;     begin       AIntent := TJIntent.Create;       AServiceName := 'com.embarcadero.services.Service';       AIntent.setClassName( TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString( AServiceName ) );       AIntent.putExtra( TAndroidHelper.StringToJString( 'Code' ), 0 );       AIntent.putExtra( TAndroidHelper.StringToJString( 'Data' ), TAndroidHelper.StringToJString( 'DataString' ) );       TAndroidHelper.Activity.startService( AIntent );     end;
      В сервисе:
          procedure TDM.AndroidIntentServiceCreate(Sender: TObject);     begin       Toast( 'Create' );     end;          procedure TDM.AndroidIntentServiceHandleIntent(const Sender: TObject;       const AnIntent: JIntent);     begin       Toast( 'HandleIntent' );     end; Сообщение 'Create' показывается, а 'HandleIntent' нет. OnCreate срабатывает, но onHandleIntent не вызывается что бы я не делал. Может я что-то не так делаю?
    • От Roman V
      Всем привет. Учусь работать с ini-файлами на Android. И сразу же возникла проблема, которую никак не могу решить. Хотел написать подобие приложение-тест с хранением данных в ini файле. В итоге все отлично работает на windows,а под Андроид при запуске висит только значок firemonkey секунд 10 и приложение вырубается так и не запустившись. В чем может быть проблема? Использую отладку по USB. 
      TIniFile *Ini = new TIniFile(System::Ioutils::TPath::GetDocumentsPath() + PathDelim + "options.ini"); Юзаю эти библиотеки 
      #include <System.IOUtils.hpp> #include <System.IniFiles.hpp>  
    • От gonzales
      Доброго времени суток!
      Решаю следующую задачу, в приложении динамически формируются разные объекты, наследники от одного класса. При формировании объектов заполняется динамический массив этих элементов. Далее я хочу в отдельном потоке для каждого из элементов массива получить его состояние, то есть делаю запрос к серверу. Все это повешено на таймер, каждую секунду должен отрабатываться запрос. Все более менее работает в Windows, а на Андроиде со временем приложение валится. Вот код таймера, для читаемости я удалил куски с различными вариантами E. RootElements - это массив TEssense от которого есть наследники. Функции GetBoardCurrentValue, GetBoardMaxValue - по сути запросы к серверу. 
      Подскажите, правильно ли я оформляю работу с потоками для работы на Андроиде?
      procedure TForm1.MasterTimerTimer(Sender: TObject); begin TTask.Run( procedure var l, d, a: byte; i,j:integer; E: TEssence; p: Pointer; VirtualNode: IXMLNode; VirtualElementNode: IXMLNode; id: byte; begin l := Length(Form1.RoomElements); for j := 0 to l - 1 do begin E := Form1.RoomElements[j]; // Реле if E is TRele then begin d := (E as TRele).Device_ID; a := (E as TRele).Device_Adress; if Form1.GetBoardCurrentValue(d, a) = true then begin TThread.Synchronize(nil, procedure begin (E as TRele).ReleSwitch.IsChecked := Form1.device[d].Board[a].CurrentValue.ToBoolean; end); end; // (E as TRele).ReleOnTimer(E) end // Диммер else if E is TDimmer then begin d := (E as TDimmer).Device_ID; a := (E as TDimmer).Device_Adress; if Form1.GetBoardMaxValue(d, a) = true then begin TThread.Synchronize(nil, procedure begin if (Form1.device[d].Board[a].Type_ID = TType.Светодиод) or (Form1.device[d].Board[a].Type_ID = TType.Диммер220) then begin (E as TDimmer).DimmerValue.Text := (Form1.device[d].Board[a].MaxValue).ToString; end; end); end; // (E as TDimmer).DimmerOnTimer(E) end // Таймер else if E is TSTimer then begin id := (E as TSTimer).STimerIndex; Form1.FillHTTPRequest(0, 0, HTTP_GET_TIMER_INFO, id); if Form1.AnswerIsComming = HTTP_GET_TIMER_INFO then begin TThread.Synchronize(nil, procedure begin if Form1.HTTPAnswer.Data1 = 0 then (E as TSTimer).Interval.Text := 'OFF' else (E as TSTimer).Interval.Text := 'ON' end); end; // (E as TSTimer).STimerOnTimer(E); end; end; end); end;   
    • От andahay
      Доброго времени суток. Есть android приложение, в нем есть диалоговое окно, которое предлагает перейти в google play и скачать другое приложение (pro версию), с 2 кнопками (да/нет). Как реализовать этот переход в Google play, чтобы в нем сразу было загружено нужное приложение. Использую Delphi XE7
    • От zekelive
      Добрый день, друзья. Начал заниматься вопросом описанным в шапке и столкнулся со множеством непонятных для меня проблем. Как примерно должно выглядеть на Рис. ниже. Знаю, что сам список барабан выполнен в TlistBox. Есть хорошая ссылка на блог Ярослава тут. Пошерстил файлы в FMX, и не нашел ключа для своего дела. Может кто занимался этим? Я изначально брал TScrollBox, кидал на него Tlayout и в него TLabel. Но думаю, видимо не то совсем.

    • От zekelive
      Добрый день. Кто знает, подскажите, можно ли средствами firemonkey менять иконку приложения в рантайм либо после закрытия и повторного открытия приложения? На win вроде бы можно, статьи на форуме находил, а для Андроида найти не удалось.
  • Последние посетители   0 пользователей онлайн

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