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

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

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

Android Chronometer в андроид java
Android Как изменить размеры меток карты OSM под Андроид
Как сделать таймер для игры в андроид Android
Android Как сделать игру на андроид , угадай число от 1 до 10
Android Можно ли претендовать на должность Java программиста, если знать только яву под андроид?
Android Как сделать андроид приложение для сайта?
Есть некая библиотека, сделана в QT. Как скомпилить под Андроид с использованием qt-lib? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1881 / 1615 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
25.05.2016, 19:05     Как правильно сделать событие в таймере Java под андроид #2
ну показывай что есть
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
25.05.2016, 19:08  [ТС]     Как правильно сделать событие в таймере Java под андроид #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 МИЛИСЕК))
    }
 
}
Паблито
не спать!
1881 / 1615 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
25.05.2016, 19:12     Как правильно сделать событие в таймере Java под андроид #4
а что не так с этим кодом?
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
25.05.2016, 19:14  [ТС]     Как правильно сделать событие в таймере Java под андроид #5
С ним все в порядке,но вместо вывода текста хотелось бы чтобы предполагаемый телевизор выключался.
androbro
312 / 272 / 51
Регистрация: 17.10.2014
Сообщений: 819
26.05.2016, 08:57     Как правильно сделать событие в таймере Java под андроид #6
Цитата Сообщение от Romava Посмотреть сообщение
предполагаемый телевизор выключался.
ну так элементарно же:
Java
1
TV.getInstance().turnOff();
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,504
26.05.2016, 11:17     Как правильно сделать событие в таймере Java под андроид #7
Romava, что бы его выключить нужно иметь к нему доступ. java-приложение у него на борту? каков API? как надо воздействовать на телек?
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 14:04  [ТС]     Как правильно сделать событие в таймере Java под андроид #8
vxg,java-приложение пытаюсь написать сам с использованием подсказок,т.к. начал учить его буквально неделю назад,api у него 22 ,версия 5 минимальная на телевизоры если не ошибаюсь,телек программно выключать как я понял нельзя....
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,504
26.05.2016, 14:12     Как правильно сделать событие в таймере Java под андроид #9
Цитата Сообщение от Romava Посмотреть сообщение
минимальная на телевизоры если не ошибаюсь,телек программно выключать как я понял нельзя
то есть это приложение для работы на телевизоре который работает под Android? там разве можно запускать вот такие-вот консоли? это же Android... там приложение по другому оформляется
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 14:39  [ТС]     Как правильно сделать событие в таймере Java под андроид #10
да,понимаю,просто сам код чисто javaвоский,но его же можно в принципе заточить под андроид
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,504
26.05.2016, 14:50     Как правильно сделать событие в таймере Java под андроид #11
Romava, супер быстрое решение-обманка - после истечения времени показать пользователю черный квадрат (визуально экран как будто выключен). остального вряд ли можно добиться. вогнать устройство в блокировку экрана вроде как нельзя. потушить экран или загнать его яркость в ноль наверное можно попытаться но... выключить устройство - только на рут прошивке или если ваше приложение подписано как прошивка вроде бы
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
26.05.2016, 20:24  [ТС]     Как правильно сделать событие в таймере Java под андроид #12
vxg, Я уже смирился с этим,сейчас думаю какую еще функцию будет полезно реализовать на телевизоре,например выключение звука...
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,504
27.05.2016, 07:33     Как правильно сделать событие в таймере Java под андроид #13
Romava, а чего так экстремально? Почему к примеру не что-то более естественное. Переключение каналов к примеру.
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 10:12  [ТС]     Как правильно сделать событие в таймере Java под андроид #14
переключение по средствам андроид приложения,мне кажется тоже экстрим
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,504
27.05.2016, 10:24     Как правильно сделать событие в таймере Java под андроид #15
Romava, просто это же телевизор. логически напрашивается мысль что люди могут захотеть сделать для него свою переключалку программ. как впрочем и выключалку или планировщик включения. может даже именно для телевизора как то можно выключить или включить потому что эти задачи для телевизора очень даже актуальны.
Паблито
не спать!
1881 / 1615 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
27.05.2016, 10:26     Как правильно сделать событие в таймере Java под андроид #16
мне кажется ТСу просто делать нечего, тема ниочем вообще, то надо то ненадо, теперь смирился
код из чистой джавы с main методом, какой-то телевизор непонятный, то ли реальный то ли класс надо сделать
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,504
27.05.2016, 10:35     Как правильно сделать событие в таймере Java под андроид #17
Паблито, мне кажется (хотя это немного интересное слово на форуме программирования) что ТС хочет сделать приложение работающее на телевизоре - в андроид можно сделать такое. я думаю для телевизора должны быть какие-то его системные интересные штуковины. однако ничего не мешает сделать приложение просто как приложение не обращая внимание на то что это телевизор.
Romava, вы пробовали ставить на него обычное приложение из маркета?
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 13:44  [ТС]     Как правильно сделать событие в таймере Java под андроид #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 минуты
Хочу сказать что до сдачи на проверку у меня остались выходные,так что кроме как сказать помогите,ничего не могу... я пересмотрел уже кучи уроков,пока еще не могу всего понять.
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,504
27.05.2016, 13:45     Как правильно сделать событие в таймере Java под андроид #19
Romava, у вас стоит студия? вы проект пробовали собирать и запускать в эмуляторе или прямо на телефоне?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2016, 13:49     Как правильно сделать событие в таймере Java под андроид
Еще ссылки по теме:

Навыки java под андроид Android
Генерация R.java в андроид приложениях Android
TableLayout как отловить значение строки по нажатию (для Андроид на java) Android
Android Как в андроид сделать чтобы navigation drawer при запуске был открыт
Android Как правильно скомпилировать .java код?

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

Или воспользуйтесь поиском по форуму:
Romava
0 / 0 / 0
Регистрация: 25.05.2016
Сообщений: 10
27.05.2016, 13:49  [ТС]     Как правильно сделать событие в таймере Java под андроид #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);
    }
}
Yandex
Объявления
27.05.2016, 13:49     Как правильно сделать событие в таймере Java под андроид
Ответ Создать тему
Опции темы

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