Intereting Posts
Дублированные файлы, скопированные в APK, включающие библиотеки Joda Time и Common IO в Android-проекте Служба Media Media Player не работает после публикации Регистрация HTTP-запросов / ответов с помощью Fiddler на эмуляторе Android Как обрабатывать параметры, которые могут быть ARRAY или OBJECT в Retrofit на Android? Почему RingtoneManager.setActualDefaultRingtoneUri не может работать? Отказывается плохо для производительности программы в OpenGL? Используйте как onClickListener, так и onLongClickListener в списке Android 1.6. Где найти информацию о команде оболочки «service call» для Android? Common_google_play_services_unknown_issue "не переводится в af, am, ar, be, bg Android: обнаружение события click в пустое пространство gridview внутри linearlayout FragmentManager.popBackStack () не просто загружает предыдущий фрагмент Как установить пустой доступный Как воспроизвести звуковое уведомление с помощью Chrome для Android с помощью Javascript? Активность Android-карты падает при выходе из Activity Обновление текстового представления на активность после изменения данных в классе адаптера

Как отображать активность, когда экран заблокирован?

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

Solutions Collecting From Web of "Как отображать активность, когда экран заблокирован?"

Я использую для повышения активности до верхнего уровня

private Window wind; @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); /******block is needed to raise the application if the lock is*********/ wind = this.getWindow(); wind.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD); wind.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED); wind.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON); /* ^^^^^^^block is needed to raise the application if the lock is*/ } 

Используйте Activity.getWindow (), чтобы получить окно вашей активности; Используйте Window.addFlags (), чтобы добавить какой-либо из следующих флагов в WindowManager.LayoutParams, который вы хотите: FLAG_DISMISS_KEYGUARD , FLAG_SHOW_WHEN_LOCKED , FLAG_TURN_SCREEN_ON

Так работает стандартное приложение для док-станции (и настольного док-станции).

Вы можете использовать FLAG_DISMISS_KEYGUARD только для телефонов, у которых нет блокировок с защитой, таких как блокировка рисунка.

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

Кроме того, вы можете добавить разрешение в свой манифест:

 <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 

И, в вашей деятельности по созданию:

 KeyguardManager manager = (KeyguardManager) this.getSystemService(Context.KEYGUARD_SERVICE); KeyguardLock lock = manager.newKeyguardLock("abc"); lock.disableKeyguard(); 

При использовании шаблона блокировки или записи с пингом мне нужно было добавить следующее, потому что экран выключен менее чем за 5 секунд:

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);