English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Эта статья рассказывает о реализации программы блокировки экрана одним кликом в Android. Предлагаю вашему вниманию, вот так:
Как мне известно, все Android-телефоны используют кнопку питания для ручной блокировки экрана. Во время использования телефона я блокирую экран не менее 30 раз в день. Если использовать только кнопку питания, её ресурс не будет долгим.
Хотя сейчас много десктопных программ включают в себя единую блокировку экрана, но для установки этих программ необходимо устанавливать их другие компоненты, что очень не приятно, потому что они регулярно обновляются автоматически или работают в фоновом режиме, что я не хочу.
После поиска в документации по Android я обнаружил, что с версии android 2.2 API включает метод lockNow (в пакете android.app.admin.DevicePolicyManager), через который можно реализовать блокировку экрана.
До начала написания кода у нас есть два класса, которые нужно знать:
1. DevicePolicyManager
Как следует из названия, эта класс предназначен для управления устройством. Через этот класс можно реализовать функции блокировки экрана, регулировки яркости и даже восстановления出厂 настроек.
2. DeviceAdminReceiver
Этот класс является производным от BroadcastReceiver, через метод OnReceive можно выполнять различные действия в зависимости от различных действий.
Процесс разработки этой программы大致 таков:
Чтобы использовать методы DevicePolicyManager, сначала определите компонент. Затем через управление этим компонентом запустите DeviceAdminReceiver.
Зарегистрируйте широковещательный сигнал для отслеживания изменений в правах, код расположен в файле AndroidMenifest.xml:
<receiver android:name=".LockScreenAdmin" android:label="@string/app_name" android:description="@string/app_name" android:permission="android.permission.BIND_DEVICE_ADMIN"> <meta-data android:name="android.app.device_admin" android:resource="@xml/lock_screen_admin" /> <intent-filter> <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> </intent-filter> </receiver>
其中, permission представляет собой необходимые права для этой функции; android:name="android.app.device_admin" указывает на экран перехода для этого действия; а android:resource="@xml/lock_screen_admin" ссылается на следующее содержимое:
<device-admin xmlns:android="http://schemas.android.com/apk/res/android"> <uses-policies> <force-lock /> </uses-policies> </device-admin>
1、 Реализовать класс, наследующийся от DeviceAdminReceiver, и реализовать необходимые методы. Этот класс в основном не требует кодирования, поэтому его описание опущено.
2、 以下是关键代码。
Этот код предназначен для активации component при первом запуске программы, после активации один раз, этот component всегда будет активен. Использование startActivityForResult() позволяет вызвать lockNow() в методе onResult для блокировки экрана, при не первом запуске напрямую вызывается lockNow() для блокировки экрана.
if (mDevicepolicymanager.isAdminActive(mComponentname)) { mDevicepolicymanager.lockNow(); finish(); else { // Первый запуск программы Intent intent = new Intent( DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mComponentname); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "One key lock screen need to active"; startActivityForResult(intent, RESULT_ENABLE); }
Таким образом, основная часть о программе блокировки экрана завершена.
Дополнительную информацию о содержании Android, который может быть интересен читателям, можно найти в теме сайта: "Обзор графического и визуального обработки Android", "Введение и продвинутый курс по разработке Android", "Обзор методов отладки и решения проблем Android", "Обзор методов работы с мультимедиа Android (аудио, видео, запись и т.д.)", "Обзор использования основных компонентов Android", "Обзор методов работы с видами View Android", "Обзор методов работы с макетами layout Android" и "Обзор методов использования контроллеров Android".
Надеюсь, что это руководство поможет вам в разработке Android-приложений.
Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, самостоятельно загружен, сайт не обладает правами собственности, не underwent редактирование, и не несет ответственности за соответствующие юридические вопросы. Если вы обнаружите содержимое,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для сообщения о нарушении, и предоставьте соответствующие доказательства. Если подтвердится, сайт немедленно удалит涉嫌侵权的内容.