Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 191
1

Отловить блокировку экрана

14.07.2016, 14:50. Просмотров 1098. Ответов 11
Метки нет (Все метки)

Добрый день!
Хотелось бы отловить блокировку экрана и, например, запустить активность. Т.е когда устройство разблокируется, первым что увидит пользователь - это открытая активность...
Как это сделать? Если через ресиверы то как?
Буду благодарен за ответ.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2016, 14:50
Ответы с готовыми решениями:

Как сделать блокировку экрана
Как сделать экран блокировки с паролем при разблокировки телефона?

Отключить блокировку экрана при бездействии
Как можно отключить блокировку экрана, если приложение активно, но пользователь долгое время не...

Как отловить последние касание экрана (onTouchEvent)
Привет товарищи программисты :) Как отловить последние касание устройства? Да, в активити...

Определить взаимную блокировку (диагностика)
как правильно определить причину взаимной блокировки в большом приложении, в большом проекте? Как...

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

11
petruchodd
14.07.2016, 16:31
  #2

Не по теме:

попахивает опять вирусняком или рекламой

0
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 191
14.07.2016, 19:01  [ТС] 3
petruchodd, локскрином...
0
Pablito
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
14.07.2016, 19:08 4
Цитата Сообщение от den_droid Посмотреть сообщение
Т.е когда устройство разблокируется
если после разблокировки будет показан локскрин, то чем тогда устройство было заблокировано до этого?
0
14.07.2016, 19:08
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 191
14.07.2016, 19:38  [ТС] 5
Паблито, блокировка устройства допустим снята. Подойдем к вопросу с другой стороны. Как отловить отключение экрана?
0
Pablito
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
14.07.2016, 19:46 6
Лучший ответ Сообщение было отмечено den_droid как решение

Решение

Notification и выключенный экран
1
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 191
14.07.2016, 19:50  [ТС] 7
Паблито, спасибо огромное! Сейчас протестирую
0
vxg
Модератор
3302 / 2095 / 331
Регистрация: 13.01.2012
Сообщений: 8,144
14.07.2016, 19:54 8
den_droid, что мешает отреагировать на подсветку экрана)?
0
Pablito
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
14.07.2016, 19:54 9
Java
1
2
где-то в сервисе или активити
registerReceiver(receiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
код из примера немного переделать и все
0
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 191
14.07.2016, 20:51  [ТС] 10
Паблито,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
BroadcastReceiver receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                Toast.makeText(context.getApplicationContext(), action, Toast.LENGTH_SHORT).show(); // не выводит
                if (action.equals(Intent.ACTION_SCREEN_ON)) {
                    Toast.makeText(context.getApplicationContext(), "On", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(context.getApplicationContext(), "Off", Toast.LENGTH_SHORT).show();
                }
            }
        };
        registerReceiver(receiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
Чет не выводит... Простите меня за мой идиотизм, но может быть еще что-то в манифесте писать надо? Например:
XML
1
2
3
4
5
<receiver android:name=".receiver">  
            <intent-filter>  
                <action android:name="android.intent.action.ACTION_SCREEN_OFF" />  
            </intent-filter>  
        </receiver>
Добавлено через 33 минуты
Как не пробую - не работает...

Добавлено через 7 минут
Решил проблему. Вот решение:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
                onoff = true;
                Toast.makeText(context.getApplicationContext(), ""+onoff, Toast.LENGTH_SHORT).show();
            } else {
                onoff = false;
                Toast.makeText(context.getApplicationContext(), ""+onoff, Toast.LENGTH_SHORT).show();
            }
        }
    };
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        
        registerReceiver(receiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
        registerReceiver(receiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
    }
0
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 191
16.07.2016, 22:34  [ТС] 11
Паблито, блин, помогите пожалуйста. Уже не знаю что делать. Не работает:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class LockscreenService extends Service {
    boolean lockOnOff;
    boolean activated = false;
    int type;
    
    BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
                if ( 5 == 5 ) {
                    //activated = true;
                    Toast.makeText(context.getApplicationContext(), "Starting...", Toast.LENGTH_SHORT).show();
                    context.startActivity(new Intent(context, MainActivity.class));
                }
            } else {
                Toast.makeText(context.getApplicationContext(), "Starting2...", Toast.LENGTH_SHORT).show();
                startActivity(new Intent(context, MainActivity.class));
            }
        }
    };
    
    @Override
    public IBinder onBind(Intent p1) {
        return null;
    }
 
    @Override
    public void onCreate() {
        try {
            JSONArray ja = new JSONArray(new DenDroidTools().readFile(Environment.getExternalStorageDirectory() + "/example/Lockscreen/settings.tsf"));
            lockOnOff = ja.getBoolean(0);
            type = ja.getInt(1);
        } catch (JSONException e) {}
        
 
        if (lockOnOff) {
            Toast.makeText(getApplicationContext(), "Register... " + lockOnOff, Toast.LENGTH_SHORT).show();
            registerReceiver(receiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
            registerReceiver(receiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
        }
        super.onCreate();
    }
    
    @Override
    public void onStart(Intent intent, int startId) {
        super.onStart(intent, startId);
        
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
        unregisterReceiver(receiver);
    }
}
0
den_droid
6 / 7 / 1
Регистрация: 18.05.2015
Сообщений: 191
17.07.2016, 22:45  [ТС] 12
Все проблемы решены кроме одной. Как получить системные обои?)
0
17.07.2016, 22:45
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2016, 22:45

Отловить блокировку экрана
Доброго времени суток! Каким образом можно отловить блокировку экрана используя WinAPI в Qt?...

Как отключить блокировку экрана
У меня при загрузки ОС стоит пароль. Если оставить монитор без работы минут на 7-10 то он...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.