Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Vladimir99
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
#1

Как разбудить устройство из спящего режима через PowerManger.WakeLock - Программирование Android

16.01.2016, 00:41. Просмотров 884. Ответов 1
Метки нет (Все метки)

Решил разбудить устройство из спящего режима из из сервиса в какой-то момент времени. Попробовал сделать сам по другому примеру,в манифесте прописал разрешение,но ничего не выходит.Понятия вообще не имею где вставляется код и какой?
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
package com.example.curoday.Service;
 
import android.content.Context;
import android.os.PowerManager;
 
public class WakeLock {
    private static PowerManager.WakeLock wl = null;
 
    public static void lockOn(Context context) {
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        if (wl == null)
            wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "ALARM");
        wl.acquire();
    }
 
    public static void lockOff(Context context) {
        try {
            if (wl != null)
                wl.release();
        } catch (Exception e) {
            //e.printStackTrace();
        }
    }
}
Вот сам сервис. Вызываю метод lockOnn(context) в сервисе в методе OnStartCommand()
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package com.example.curoday.Service;
 
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
 
import com.example.curoday.ActivityFile.MainActivity;
import com.example.curoday.ActivityFile.ServiceDialog;
import com.example.curoday.BasicClasees.Alarm;
import com.example.curoday.Database.AlarmDatabase;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
 
public class AlarmService extends Service {
    private Alarm alarm;
 
    @Override
    public void onCreate() {
        super.onCreate();
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
    }
 
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        WakeLock.lockOn(getApplicationContext());
        startSchedule(getApplicationContext());
        return START_NOT_STICKY;
    }
 
    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }
 
    public void startSchedule(Context context){
        alarm=getNextAlarmService();
        if(alarm!=null) {
            Intent scheduleIntent = new Intent(context, ServiceDialog.class);
            scheduleIntent.putExtra("alarm_name",alarm.getAlarmName());
            scheduleIntent.putExtra("alarm_time", alarm.getAlarmTimeToString());
 
            PendingIntent pIntent = PendingIntent.getActivity(context, 0, scheduleIntent, PendingIntent.FLAG_CANCEL_CURRENT);
            AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            alarmManager.set(AlarmManager.RTC_WAKEUP, getAlarmTimeService().getTimeInMillis(), pIntent);
        }
        else {
            Intent scheduleIntent = new Intent(context, ServiceDialog.class);
            PendingIntent pIntent = PendingIntent.getActivity(context, 0, scheduleIntent, PendingIntent.FLAG_CANCEL_CURRENT);
            AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            alarmManager.cancel(pIntent);
        }
    }
 
    private Alarm getNextAlarmService() {
            Set<Alarm> alarm_sort_list=new TreeSet<>(new Comparator<Alarm>() {
                @Override
                public int compare(Alarm left, Alarm right) { //порядок вывода в listView
                    int result=0;
                    long difference=left.getAlarmTime().getTimeInMillis()-right.getAlarmTime().getTimeInMillis();
                    if(difference<0){
                        return 1;
                    }
                    else if(difference>0){
                        return -1;
                    }
                    return result;
                }
            });
            AlarmDatabase.entry(getApplicationContext());
            ArrayList<Alarm> alarm_list=AlarmDatabase.getAllAlarm();
            for(Alarm alarm:alarm_list){
//                if(alarm.getAlarmActive()){
//                если аларм на активе то кидаем в сервис
//                }
                alarm_sort_list.add(alarm);
            }
            if(alarm_sort_list.iterator().hasNext()){
                return alarm_sort_list.iterator().next();
            }
            else return null;
    }
 
    public Calendar getAlarmTimeService() {
        Calendar alarm_time=alarm.getAlarmTime();
        if (alarm_time.before(Calendar.getInstance())){
            alarm_time.add(Calendar.DAY_OF_MONTH, 1);
        }
        return alarm_time;
    }
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2016, 00:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как разбудить устройство из спящего режима через PowerManger.WakeLock (Программирование Android):

Как вывести устройство из ждущего режима и включить дисплей? - Программирование Android
Добрый день! Хочу написать некое подобие будильника. Подскажите пожалуйста, как вывести устройство из ждущего режима и включить...

Переход на уже запущенную активность из спящего режима - Программирование Android
Всем привет Проблема такова имеется активити у которой есть таймер(30сек) по истечению которого должна разбудить телефон и перейти на...

WakeLock для затухания экрана - Программирование Android
Здравствуйте! как можно реализовать затухание экрана, экран не выключается из за wakelock, как можно сделать после 1 минуты затухание...

Как заставить комп выходить из спящего режима через удаленный рабочий стол? - Администрирование Windows
Интересует, как Винда XP, 7, 10, так и Линух. Спасибо.

Компьютер сам выходит из спящего режима и сам включается.(после спящего режима) - Windows 10
Здравствуйте,обычно спящим режимом я не пользуюсь,но вчера решил поставить в спящей режим компьютер и через минут 7 он сам вышел из спящего...

Нужно, чтобы компьютер переходил в спящий режим и через несколько минут выходил из спящего режима - Windows 10
Мне нужно сделать, чтобы компьютер переходил в спящий режим и через несколько минут выходил из спящего режима. Вот что я знаю: Переход...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
AllMore
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 16
16.01.2016, 12:31 #2
я делал решение через AlarmManager, будил сервис через Н времени. Так как когда телефон спит, сервисы тоже вроде как не работают
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2016, 12:31
Привет! Вот еще темы с ответами:

Как отследить выход системы из спящего режима - Visual Basic .NET
Добрый день уважаемые! Подскажите, можно ли отследить выход компа из спячки. Если можно, то как. Хотелось бы пример. За ранее благодарю.

Как анулировать предыдущий сеанс спящего режима? - Windows 7
Звонил знакомый, просил помощи по телефону. Рассказываю его историю: Смотрел фильм с диска на ноуте и тут изображение со звуком подвисло и...

Как отключить выход из спящего режима с клавиатуры? - Ubuntu Linux
У меня Xubuntu на нетбуке lenovo ideapad s110. Когда перехожу в спящий режим (ждущий точнее) и закрываю крышку нетбука, то крышка очень...

Как выйти из спящего режима без открытия крышки на ноутбуке? - Ноутбуки
Вот такой вопрос возник: как выйти из спящего режима с помощью подключенных устройств? у меня есть ноутбук (dell, win 10) к нему я...


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

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

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