Keyguardtestactivity что за процесс - TurboComputer.ru
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд (пока оценок нет)
Загрузка...

Keyguardtestactivity что за процесс

Как я писал кастомный локер

Привет хабрастарожилам от хабрановичка. Ровно год назад я решил написать кастомный локер (экран блокировки) для моего старичка Samsung Galaxy Gio в стиле популярного тогда Samsung Galaxy s3. Какие причины заставили меня это сделать, писать не буду, но добавлю лишь то, что в Google Play я программу не собирался выкладывать и каким-либо другим способом заработать на ней не планировал. Данный пост посвящен последствиям моего решения.

Начну издалека. Многие хвалят Android за открытость и возможность заменить и настроить встроенные программы под свои нужды. Что тут сказать? В сравнении с другими популярными ОС, это, безусловно, так, но если копнуть глубже в архитектуру Android возникают трудности и вопросы. Локскрин (в Android это называется keyguard) как раз и вызывает вопросы: почему Google не поступили с ним, так как с лаунчерами, почему не сделали диалог со всеми доступными на устройстве локерами и с возможностью выбрать нужный по умолчанию? Где-то в глубине мозга тихим нерешительным голосом кто-то отвечает: может быть Google (Android Ink. если быть точнее) поступил так из соображений безопасности. Этот голос вероятно прав и многим разработчикам локеров и мне (скромность не позволила приписать себя к их числу) пришлось изобретать велосипед, и не один.

Изучаем исходники

Начал я с использования одного из плюсов Android – из изучения исходников. Я один из тех консерваторов, которые уже 2,5 года сидят на стоковой прошивке (2.3.6), поэтому и исходники изучал соответствующие. Классы, отвечающие за блокировку экрана, лежат в android.policy.jar, что в system/framework. Первоначальной целью было найти «точку входа», т.е. где и когда вызывается локер. Искал здесь.

В классе PhoneWindowManager.java есть метод screenTurnedOff(int why), который вызывает одноименный метод класса KeyguardViewMediator. Проследив, кто кого вызывает, я нашел метод в классе KeyguardViewManager, создающий непосредственно View стокового локера.

Что ж, все гениальное – просто. Решил повторить этот код для своего приложения и получил ошибку – нет нужного permission. Немного погуглив, добавил следующие разрешения: SYSTEM_ALERT_WINDOW и INTERNAL_SYSTEM_WINDOW. Это не помогло.

Вернулся к изучению класса PhoneWindowManager.java:

Для требуемого окна TYPE_KEYGUARD нужно второе из моих добавленных разрешений. Задней точкой тела начал ощущать, что не все так просто, как я себе представлял. Решено было посмотреть на описание этого permission. Вот выдержка из AndroidManifest.xml пакета framework-res.apk.

Вот она – черная полоса в жизни. Ведь я понимал, «signature» – это значит, что использовать этот пермишн может только пакет, подписанный тем же ключом, что и пакет, выдавший это разрешение (в нашем случае — framework-res.apk). Ладно, достаем инструменты для изготовления велосипедов.

Версия один

Первым решением было использовать activity в качестве локскрина. На stackoverflow советуют использовать следующий код:

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

Решение первого недостатка (переполнениестека опять помогло) следующее. Поверх статусбара с помощью WindowManager рисуется прозрачный View, который перехватывает все TouchEvent. Вот служба, реализующая это:

Второго недостатка для меня не существовало, на Gingerbread данный код работал превосходно. На 4pda, куда я опрометчиво выложил свое творение, пользователи жаловались, что на многих телефонах мой локер сворачивался как обычное приложение. Для них найдено такое решение. В качестве стандартного лаунчера устанавливается пустышка. При нажатии кнопки HOME система вызывает мой лаунчер-пустышку. Если кастомный локер активен, лаунчер сразу же закрывается в методе onCreate(), т.е. визуально нажатие кнопки HOME ни к чему не приводит. Если кастомный локер не активен, мой лаунчер тут же вызывает другой правильный лаунчер, который пользователь указал в настройках.

Вот код пустышки:

Выглядело это следующим образом:

Эти велосипеды ездили долго и хорошо, пока я не решил сделать «правильный» локскрин, и уже в стиле Samsung Galaxy S4.

Версия два

Когда системе необходимо запускать кастомный локер? Очевидно, что при выключении экрана. Создадим службу, регистрирующую BroadcastReceiver, т.к. из манифеста данный фильтр не работает.

Необходимо учесть две особенности:

1. Служба должна быть запущена в момент загрузки устройства. Создадим BroadcastReseiver с IntentFilter «android.intent.action.BOOT_COMPLETED». Есть одно НО: служба при запуске должна отключить стандартную блокировку экрана. Особенностью Android является то, что стандартное окно ввода PIN-кода является частью стокового экрана блокировки. Поэтому служба должна запускаться только когда PIN буден введен.

Максимум, на что хватило моей фантазии:

2. Проанализировав PhoneWindowManager видно, что в метод screenTurnedOff(int why) передается переменная why, принимающая 3 значения:
— экран выключился по истечению таймаута (в этом случае стоковый локер запускается с задержкой),
— экран выключился при срабатывании сенсора приближения (во время телефонного разговора),
— экран выключился при нажатии кнопки.
В моем случае такого разнообразия нет. Поэтому служба мониторит состояние телефона, и при входящем звонке или во время разговора экран не блокируется.

Вот основной код службы:

Идея не использовать activity, а использовать WindowManager была еще сильна. Из пяти типов окон, использующих разрешение SYSTEM_ALERT_WINDOW, мне подошел TYPE_SYSTEM_ALERT. Причем у него были очевидные достоинства: блокировался статусбар (по крайней мере, на Gingerbread) и перехватывалось нажатие кнопки HOME (работает даже на Jelly Bean).

Промежуточным звеном между службой и KeyguardView является класс KeyguardMediator:

Дальше история становится менее интересной, так сказать, будничной. На мой локер можно добавлять ярлыки приложений (здесь все стандартно и просто) и виджеты (а вот этот момент достоин отдельной статьи).

Теперь все стало выглядеть современней:

Ошибка приложение остановлено или приложение остановилось на Andro > 20.09.2017 &nbsp мобильные устройства

Одна из проблем, с которой можно столкнуться при использовании Android телефона или планшета — сообщение о том, что какое-то приложение остановлено или «К сожалению, приложение остановилось» (также возможен вариант Unfortunately, the process has stopped). Ошибка может проявить себя на самых разных версиях Android, на телефонах Samsung, Sony Xperia, LG, Lenovo, Huawei и других.

В этой инструкции — подробно о различных способах исправить ошибку «Приложение остановлено» на Android в зависимости от ситуации и того, какое именно приложение сообщило об ошибке.

Примечание: пути в настройках и скриншоты приведены для «чистого» Android, на Samsung Galaxy или на другом устройстве с измененным по сравнению со стандартным лаунчером, пути могут слегка отличаться, но всегда находятся примерно там же.

Как исправить ошибки «Приложение остановлено» на Andro >Иногда ошибка «Приложение остановлено» или «Приложение остановилось» может возникать не во время запуска конкретного «необязательного» приложения (например, Фото, Камера, ВК) — в таком сценарии решение обычно сравнительно простое.

Более сложный вариант ошибки — появление ошибки при загрузке или разблокировке телефона (ошибка приложения com.android.systemui и Google или «Приложение графический интерфейс системы остановилось» на телефонах LG), вызове приложения «телефон» (com.android.phone) или камера, ошибке приложения «Настройки» com.android.settings (что не дает зайти в настройки для очистки кэша), а также при запуске Google Play Маркет или обновлении приложений.

Самый простой способ исправления

  1. Зайдите в Настройки — Приложения, найдите в списке проблемное приложение и нажмите по нему. Например, было остановлено приложение Телефон.
  2. Нажмите по пункту «Хранилище» (пункт может отсутствовать, тогда вы сразу увидите кнопки из п.3).
    1. Там же в настройках, выбрав приложение, нажмите «Отключить».
    2. Вас предупредят о возможных проблемах при отключении приложения, нажмите «Отключить приложение».
    3. Следующее окно предложит «Установить исходную версию приложения», нажмите Ок.

      The navigation Bar App is an Onscreen navigation app that allows users to use their phone without the soft keys. This method actually worked for me the last time the bug came alive.

      • Head over to Google Playstore and install Navigation Bar App
      • Open it and follow on-screen instructions to turn on the app in Accessibility
      • Now go back to the app
      • Select Lock the Bar
      • Optionally you can select Swap Recent and Back Button to make it look like the phone keys
      • Now toggle the app on (top right)
      • Hit the ‘navigation bar home button on the screen, if it works then your phone’s home button and the recent key should start working. You can toggle off the app now.

      if it doesn’t work, try the next step.

      Nova Activities

      This method usually recommended for most phones as it works for a lot of persons (didn’t work for one of my phones though).

      • Install Nova Launcher and try and set it to default
      • Tap and long press (hold) any space on the home screen to display a shortcut
      • Select Widgets
      • At the top, under Nova Launcher, Tap and Hold activities and drop it on the home screen, this opens up the Nova activities
      • Scroll down to .SetupWizard, it is usually two or three (sometimes found under settings activity)
      • Touch each SetupWizard to open it and select the option with SetupWizardTestActivity (name differs by phone, but it usually has the TestActivity, in some phones, it is .SetupExitActivity, or WizardFullActivity)
      • It will either create a widget on the home screen which you will need to open or it will automatically open.
      • Follow the menu and click next, follow the instructions like you are just setting up a new device.
      • This will trigger your phone to believe that it has been formatted (no data will be lost) and the keys and notification bar should start working again.
      • If the keys and notification bar doesn’t work, restart the phone and check.

      Alternatively, instead of selecting SetupWizard, tap settings in the activities menu and select Users, this should give you a way to giggle the active users.

      Download OS Updates

      Some phones manufacturers may have noticed the bug and decided to patch it, so it is wise to check if your phone has OS update and download it. Go to settings > About Phone > Update and check for update. If there is no OS update and you have tried all the options above, then you have no choice but to format the phone.

      Hard Reset

      If none of the above works, format the device using hard reset. This will lead to loss of data so you can try backing up your data by some of following the instructions here.

      • Boot into recovery mode (turn off the phone then press and hold Power Button + Volume Up Button till you feel it vibrates or turns on)
      • Scroll to Recovery Mode using the Volume Down button
      • Press the power button to select and boot the phone into Recovery Mode
        Select wipe user data/factory reset using the volume up or down button.
      • Press Power Button to select
      • Use volume button to scroll to Yes and use Power Button to confirm.
      • Wait for it to be completed, turn your device and set it up.

      Flash The ROM/OS

      If none of the above works for you or you are just weary about the bug popping up again (it sure does), find an IT professional to flash and change the phone’s ROM. There is 99.9% possibility that the bug is not in the new OS.

      If you have any questions or tips? Let us know below by using the comment box, and we will reply as quickly as we can.

      9 опасных приложений на Andro >

      Ребята, мы вкладываем душу в AdMe.ru. Cпасибо за то,
      что открываете эту красоту. Спасибо за вдохновение и мурашки.
      Присоединяйтесь к нам в Facebook и ВКонтакте

      Google Play — отличная площадка для новых разработчиков, которые хотят сделать собственное приложение. Но не все из них имеют только чистые помыслы: некоторые из этих программ могут собирать ваши данные, передавать персональную информацию и даже обчистить ваш счет.

      AdMe.ru создал список наиболее подозрительных приложений. № 5 лучше удалить сразу.

      № 1. Погодные приложения

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

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

      № 2. Социальные сети

      Подобные приложения также стихийно обрели популярность и быстро потеряли ее. В данном случае хакеры ни при чем, просто сами приложения потребляют много энергии и памяти смартфона, из-за чего последний безбожно тормозит. Например, пользователям Facebook более удобной показалась мобильная версия в браузере, к которой многие вернулись после того, как протестировали приложение. Кстати, многие пользователи «ВКонтакте» также отдают предпочтение мобильной версии сайта.

      № 3. Оптимизаторы

      Clean Master и другие подобные оптимизаторы заботятся о своевременной очистке кеша и удалении ненужных программ. Однако большинство современных смартфонов имеет подобные функции в системе, что делает такие приложения бесполезными, ведь кеш и батарею телефона они продолжают потреблять. Так что вы не добьетесь ускорения работы системы, а только замедлите ее, получив «бонусом» рекламу.

      № 4. Встроенные браузеры

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

      № 5. Антивирусы от непроверенных разработчиков

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

      № 6. Браузеры с дополнительными функциями

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

      № 7. Приложения для увеличения объема оперативной памяти

      Приложения для увеличения объема оперативной памяти являются, по сути, теми же оптимизаторами: они могут только своевременно очищать кэш, что телефон способен сделать и самостоятельно. Что касается оперативной памяти, то большего объема, чем тот, которым изначально располагает смартфон, вы не получите. Так что эти программы будут только тратить ресурсы и, возможно, собирать ваши данные.

      № 8. Детекторы лжи

      Подобные приложения невозможно воспринимать всерьез, они созданы исключительно для развлечения. Возможно, в будущем, когда смартфоны будут оснащены биометрическими датчиками, они действительно смогут считывать изменения пульса во время ответов на вопросы, но сейчас от детектора лжи в телефоне не больше толку, чем от хрустального шара. Как и все подобные приложения, они расходуют заряд батареи. Кроме того, для работы такой программе не нужен доступ к контактам или персональным данным. Так что если приложение пытается получить доступ к системе, то его лучше не устанавливать.

      № 9. Дефрагментаторы

      Приложения для дефрагментации жесткого диска сразу после своего появления обрели огромную популярность из-за аналогии с подобными программами для персонального компьютера. Но в телефоне жесткого диска для дефрагментации просто нет — эти приложения просто анализируют, сколько места занимают во внутренней памяти те или иные программы. Кроме того, дефрагментаторы также будут тратить ресурсы смартфона и могут собирать ваши данные.

      Учитывая настоящий бум в сфере создания приложений, Google не может отследить и проверить все новые программы, поэтому безопасность вашего смартфона и его работоспособность во многом зависят от вас. Пишите в комментариях, сколько приложений из нашего списка вы нашли у себя.

      Читайте также:  Руководство по использованию VirtualDub
Ссылка на основную публикацию
Adblock
detector