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

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

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

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

16.01.2016, 00:41. Просмотров 752. Ответов 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;
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2016, 00:41     Как разбудить устройство из спящего режима через PowerManger.WakeLock
Посмотрите здесь:
Android Как вывести устройство из ждущего режима и включить дисплей?
Android Переход на уже запущенную активность из спящего режима
WakeLock для затухания экрана Android
Android Устройство не определяется через ADB
Android Разбудить телефон из сервиса
Android Как определить устройство?
Basic4Android Как перезагрузить устройство android
Как узнать что устройство подключено к определенной wifi Android
Как заставить спящее Android-устройство периодически просыпаться и делать полезную работу? Android
Android Как "подружить" внешнее устройство и приложение
Android Отличия debug режима от release
Устройство internalStorage Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AllMore
0 / 0 / 0
Регистрация: 13.12.2015
Сообщений: 16
16.01.2016, 12:31     Как разбудить устройство из спящего режима через PowerManger.WakeLock #2
я делал решение через AlarmManager, будил сервис через Н времени. Так как когда телефон спит, сервисы тоже вроде как не работают
Yandex
Объявления
16.01.2016, 12:31     Как разбудить устройство из спящего режима через PowerManger.WakeLock
Ответ Создать тему
Опции темы

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