Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
#1

Как правильно сделать событие в таймере Java под Android - Программирование Android

25.05.2016, 19:03. Просмотров 658. Ответов 21
Метки нет (Все метки)

Проблема причем срочная,пишу диплом тема:программный таймер управления телевизором.
Выбрал ось Андроид пытаюсь написать адекватный таймер выключения, пересмотрел кучу тем и видео, нигде не могу найти как выбрать адекватный способ отключения.Подскажите новичку в Jave
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2016, 19:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как правильно сделать событие в таймере Java под Android (Программирование Android):

Хочу сделать игру под Android на движке Unity. Как сделать регистрацию пользователей?
Помогите разобраться! Хочу сделать игру под Андроид на движке Unity. Как...

Можно ли написать веб сервер на Java для клиента на Android, имея под рукой только телефон на Android?
Уважаемые гуру программирования, если можно, пожалуйста, напишите поподробнее-...

Как сделать маскировку под Android?
Есть мобила Nokia N76, у меня там установлена Агент 1.77 для symbian и для java...

Событие установки приложения Android Java
Здравствуйте, как можно отследить что приложения было установлено? допустим при...

Android java(eclipse) mysql как сделать коннект?
Добрый день, форумчане. Помогите, пожалуйста, с вопросом. 2-й день пытаюсь...

Навыки Java под Android
Доброго дня! Изучаю java, хочу разрабатывать приложения для андроид, встал...

21
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
25.05.2016, 19:05 #2
ну показывай что есть
0
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
25.05.2016, 19:08  [ТС] #3
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
package javaapplication24;
 
import java.util.Timer;
import java.util.TimerTask;
 
public class JavaApplication24 {
 
    public static void main(String[] args) {
        final Timer time = new Timer();
 
        time.schedule(new TimerTask() {
            int i = 0;
            @Override
            public void run() { // МЕТОД RUN В КОТОРОМ ДОЛЖНО БЫТЬ ОТКЛЮЧЕНИЕ СИСТЕМЫ
                if(i>=2){
                    System.out.println("Таймер завершил свою работу");
                    time.cancel();
                    return;
                }
                System.out.println("Прошло 4 секунды");
                i = i + 1;
            }
        }, 4000, 4000); //(4000 - ПОДОЖДАТЬ ПЕРЕД НАЧАЛОМ В МИЛИСЕК, ПОВТОРЯТСЯ 4 СЕКУНДЫ (1 СЕК = 1000 МИЛИСЕК))
    }
 
}
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
25.05.2016, 19:12 #4
а что не так с этим кодом?
0
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
25.05.2016, 19:14  [ТС] #5
С ним все в порядке,но вместо вывода текста хотелось бы чтобы предполагаемый телевизор выключался.
0
androbro
340 / 301 / 67
Регистрация: 17.10.2014
Сообщений: 887
26.05.2016, 08:57 #6
Цитата Сообщение от Romava Посмотреть сообщение
предполагаемый телевизор выключался.
ну так элементарно же:
Java
1
TV.getInstance().turnOff();
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
26.05.2016, 11:17 #7
Romava, что бы его выключить нужно иметь к нему доступ. java-приложение у него на борту? каков API? как надо воздействовать на телек?
0
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 14:04  [ТС] #8
vxg,java-приложение пытаюсь написать сам с использованием подсказок,т.к. начал учить его буквально неделю назад,api у него 22 ,версия 5 минимальная на телевизоры если не ошибаюсь,телек программно выключать как я понял нельзя....
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
26.05.2016, 14:12 #9
Цитата Сообщение от Romava Посмотреть сообщение
минимальная на телевизоры если не ошибаюсь,телек программно выключать как я понял нельзя
то есть это приложение для работы на телевизоре который работает под Android? там разве можно запускать вот такие-вот консоли? это же Android... там приложение по другому оформляется
0
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 14:39  [ТС] #10
да,понимаю,просто сам код чисто javaвоский,но его же можно в принципе заточить под андроид
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
26.05.2016, 14:50 #11
Romava, супер быстрое решение-обманка - после истечения времени показать пользователю черный квадрат (визуально экран как будто выключен). остального вряд ли можно добиться. вогнать устройство в блокировку экрана вроде как нельзя. потушить экран или загнать его яркость в ноль наверное можно попытаться но... выключить устройство - только на рут прошивке или если ваше приложение подписано как прошивка вроде бы
0
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 20:24  [ТС] #12
vxg, Я уже смирился с этим,сейчас думаю какую еще функцию будет полезно реализовать на телевизоре,например выключение звука...
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
27.05.2016, 07:33 #13
Romava, а чего так экстремально? Почему к примеру не что-то более естественное. Переключение каналов к примеру.
0
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 10:12  [ТС] #14
переключение по средствам андроид приложения,мне кажется тоже экстрим
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
27.05.2016, 10:24 #15
Romava, просто это же телевизор. логически напрашивается мысль что люди могут захотеть сделать для него свою переключалку программ. как впрочем и выключалку или планировщик включения. может даже именно для телевизора как то можно выключить или включить потому что эти задачи для телевизора очень даже актуальны.
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
27.05.2016, 10:26 #16
мне кажется ТСу просто делать нечего, тема ниочем вообще, то надо то ненадо, теперь смирился
код из чистой джавы с main методом, какой-то телевизор непонятный, то ли реальный то ли класс надо сделать
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
27.05.2016, 10:35 #17
Паблито, мне кажется (хотя это немного интересное слово на форуме программирования) что ТС хочет сделать приложение работающее на телевизоре - в андроид можно сделать такое. я думаю для телевизора должны быть какие-то его системные интересные штуковины. однако ничего не мешает сделать приложение просто как приложение не обращая внимание на то что это телевизор.
Romava, вы пробовали ставить на него обычное приложение из маркета?
0
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 13:44  [ТС] #18
Извините что трачу ваше драгоценное время,но как я уже отмечал,делаю диплом и тема моя андроид приложение таймер,выбрал тему не я, а руководитель перепутав меня с другим студентом,теперь я загнан в рамки,так что за неделю я сперва подучил основы java,а теперь разбираюсь в андроид студио. Понял что под тв приложения там делать очень тяжело,тем более с моим багажом знаний,так что что уж там врать пытаюсь найти что-то рабочее на просторах интернета,нашел рабочий Javaвовский код,в принципе правильный,но без привязки к xml, :
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
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
 
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.PowerManager;
import android.widget.Toast;
 
publicclass AlarmManagerBroadcastReceiverextends BroadcastReceiver{
 
finalpublic static String ONE_TIME="onetime";
 
@Override
public void onReceive(Context context, Intent intent){
PowerManager pm=(PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl= pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"YOUR TAG");
//Осуществляем блокировку
wl.acquire();
 
//Здесь можно делать обработку.
Bundle extras= intent.getExtras();
StringBuilder msgStr=new StringBuilder();
 
if(extras!=null&& extras.getBoolean(ONE_TIME, Boolean.FALSE)){
//проверяем параметр ONE_TIME, если это одиночный будильник,
//выводим соответствующее сообщение.
msgStr.append("Одноразовый будильник: ");
}
Format formatter=new SimpleDateFormat("hh:mm:ss a");
msgStr.append(formatter.format(newDate()));
 
Toast.makeText(context, msgStr, Toast.LENGTH_LONG).show();
 
//Разблокируем поток.
wl.release();
}
 
public void SetAlarm(Context context)
{
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
intent.putExtra(ONE_TIME, Boolean.FALSE);//Задаем параметр интента
PendingIntentpi= PendingIntent.getBroadcast(context,0, intent,0);
//Устанавливаем интервал срабатывания в 5 секунд.
am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000*5,pi);
}
 
public void CancelAlarm(Context context)
{
Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
PendingIntent sender= PendingIntent.getBroadcast(context,0, intent,0);
AlarmManager alarmManager=(AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(sender);//Отменяем будильник, связанный с интентом данного класса
}
 
public void setOnetimeTimer(Context context){
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
intent.putExtra(ONE_TIME, Boolean.TRUE);//Задаем параметр интента
PendingIntentpi= PendingIntent.getBroadcast(context,0, intent,0);
am.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),pi);
}
}
Добавлено через 3 минуты
Хочу сказать что до сдачи на проверку у меня остались выходные,так что кроме как сказать помогите,ничего не могу... я пересмотрел уже кучи уроков,пока еще не могу всего понять.
0
vxg
Модератор
3231 / 2034 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
27.05.2016, 13:45 #19
Romava, у вас стоит студия? вы проект пробовали собирать и запускать в эмуляторе или прямо на телефоне?
0
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 13:49  [ТС] #20
в эмуляторе пробовал,но что толку если нет толкового xml

Добавлено через 2 минуты
Вот так вот выглядит java класс в студио
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
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
 
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class AlarmManagerBroadcastReceiver extends BroadcastReceiver {
 
    final public static String ONE_TIME = "onetime";
 
    @Override
    public void onReceive(Context context, Intent intent) {
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
//Осуществляем блокировку
        wl.acquire();
 
        Bundle extras = intent.getExtras();
        StringBuilder msgStr = new StringBuilder();
 
        if (extras != null)  extras.getBoolean(ONE_TIME, Boolean.FALSE);{
//проверяем параметр ONE_TIME, если это одиночный будильник,
//выводим соответствующее сообщение.
            msgStr.append("Одноразовый будильник: ");
        }
        Format formatter = new SimpleDateFormat("hh:mm:ss a");
        msgStr.append(formatter.format(new Date()));
 
        Toast.makeText(context, msgStr, Toast.LENGTH_LONG).show();
 
//Разблокируем поток.
        wl.release();
    }
    public void SetAlarm(Context context)
    {
        AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
        intent.putExtra(ONE_TIME, Boolean.FALSE);//Задаем параметр интента
        PendingIntent pi = PendingIntent.getBroadcast(context,0, intent,0);
//Устанавливаем интервал срабатывания в 5 секунд.
        am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000*5,pi);
    }
 
    public void CancelAlarm(Context context)
    {
        Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
        PendingIntent sender= PendingIntent.getBroadcast(context,0, intent,0);
        AlarmManager alarmManager=(AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        alarmManager.cancel(sender);//Отменяем будильник, связанный с интентом данного класса
    }
    public void setOnetimeTimer(Context context){
        AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intent=new Intent(context, AlarmManagerBroadcastReceiver.class);
        intent.putExtra(ONE_TIME, Boolean.TRUE);//Задаем параметр интента
        PendingIntent pi = PendingIntent.getBroadcast(context,0, intent,0);
        am.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),pi);
    }
}
0
27.05.2016, 13:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2016, 13:49
Привет! Вот еще темы с решениями:

Вывод значений в Java под Android
Здравствуйте! Очень надеюсь на вашу помощь, а также, что не нарушил правил. :)...

Можно ли программировать на Java под Android
Можно ли программировать на Java под Android?

Адаптация программы Java под приложение Android
Нужна помощь в адаптации программы написанной на Java под андроид приложение....

Возможные сложности разработки под Android на Java: энергопотребление и перегрев
Хотелось бы спросить у более опытных товарищей - с какими проблемами может...


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

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

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