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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.64
Jovfer
0 / 0 / 0
Регистрация: 03.09.2012
Сообщений: 6
#1

Использование статус-бара для управления приложением - Программирование Android

03.09.2012, 17:05. Просмотров 3501. Ответов 12
Метки нет (Все метки)

Доброго времени суток!

Необходимо вынести некоторые простые функции управления приложением (возможно службой) в удобное место для пользователя.

Больше всего устраивает вариант решения этой проблемы в стандартном плеере на 2.3.7:
в статус баре (который появляется при разворачивании строки состояния), над разделами "текущие", "уведомления" отображается панелька для управления плеером. Строка с названием композиции, пару кнопок (пауза, вперед/назад).

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

Цель - управлять состоянием программы активна/неактивна/ожидание определенного события. Нужно 3 кнопки для состояния, возможно еще одна для выхода. Изначально была идея реализовать с помощью виджета, но текущий вариант выглядит более удобным для пользования.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2012, 17:05     Использование статус-бара для управления приложением
Посмотрите здесь:
Android Убрать уведомление из статус-бара
Приложение для суши бара Android
MySQL для работы с android-приложением Android
Что лучше использовать для выполнения приложением ежедневного задания? Android
Кастомизация прогресс-бара Android
Android Уменьшение прогресс бара до нулевого значения каждую секунду
Разработка приложения для удаленного управления windows Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
03.09.2012, 21:42     Использование статус-бара для управления приложением #2
может быть взгляните в сторону виджетов?
Jovfer
0 / 0 / 0
Регистрация: 03.09.2012
Сообщений: 6
03.09.2012, 23:19  [ТС]     Использование статус-бара для управления приложением #3
YAUHEN,
Цитата Сообщение от Jovfer Посмотреть сообщение
Изначально была идея реализовать с помощью виджета, но текущий вариант выглядит более удобным для пользования.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
03.09.2012, 23:39     Использование статус-бара для управления приложением #4
виджет - более гибкое в плане реализации, но менее удобное в плане юзабилити ... хотя на вкус и цвет фломастеры разные.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.09.2012, 14:48     Использование статус-бара для управления приложением #5
Цитата Сообщение от Jovfer Посмотреть сообщение
Как я понял, в Status Notifications кнопку не засунешь
http://developer.android.com/referen...et.RemoteViews)
Jovfer
0 / 0 / 0
Регистрация: 03.09.2012
Сообщений: 6
05.09.2012, 00:10  [ТС]     Использование статус-бара для управления приложением #6
Копал в сторону RemoteViews. Добавить кнопку получилось, понятное дело, сразу. А вот с обработкой нажатия - не могу понять что делаю не так, или все-таки это не сработает в принципе.
На нажатие кнопки в простеньком Activity делаю следующее:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void onClick(View v) {       
                Intent active = new Intent(ACTION);
                active.putExtra(TYPE, ID_ACTION_START);
                //sendBroadcast(active); если шлем Broadcast сразу - все прекрасно работает
                
                RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.noty);
                PendingIntent actionPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, active, 0);
                
                remoteViews.setOnClickPendingIntent(R.id.button_one, actionPendingIntent);              
                
                int icon = R.drawable.test_icon;
                CharSequence tickerText = "Test";   
                long when = System.currentTimeMillis();      
                
                Intent notificationIntent = new Intent(getApplicationContext(), LaunchActivity.class);
                PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, notificationIntent, 0);
                                            
                Notification notification = new Notification(icon, tickerText, when);
                notification.contentIntent = contentIntent;
                notification.contentView = remoteViews;
                        
                mNotifyMgr.notify(ID_NOTY, notification);
            }
Добавлено через 14 минут
Дополнение: естественно понимаю, что если подсунуть в Intent, передаваемый непосредственно в notification.contentIntent, нужное событие, то оно обработается при нажатии на уведомление. Но в конечном итоге мне необходимо обрабатывать несколько кнопок в статус-баре и создавать для них отдельные уведомления - имхо не очень хорошая идея.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.09.2012, 00:21     Использование статус-бара для управления приложением #7
попробуйте в первом случае заюзать getActivity.
Java
1
2
3
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.noty);
PendingIntent actionPendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, active, 0);   
remoteViews.setOnClickPendingIntent(R.id.button_one, actionPendingIntent);
завтра проверю у себя, до этого пробовал только вызывать разные активити при нажатие на кнопки.
Jovfer
0 / 0 / 0
Регистрация: 03.09.2012
Сообщений: 6
05.09.2012, 00:48  [ТС]     Использование статус-бара для управления приложением #8
V0v1k, спасибо за совет, но опять прежний результат.
При нажатии на кнопку поставленный на нее вызов Activity не дергается. Вообще складывается впечатление, что при нажатии на любой элемент в Notification, в частном случае на кнопку, вызывается событие для самого Notification, а не для элемента.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.09.2012, 02:03     Использование статус-бара для управления приложением #9
Цитата Сообщение от Jovfer Посмотреть сообщение
Вообще складывается впечатление, что при нажатии на любой элемент в Notification, в частном случае на кнопку, вызывается событие для самого Notification, а не для элемента.
не, я тестил вызовы активитей при нажатии на кнопки и у меня все нормально работало...
AlexAl-77
Сообщений: n/a
05.09.2012, 10:25     Использование статус-бара для управления приложением #10
Цитата Сообщение от V0v1k Посмотреть сообщение
не, я тестил вызовы активитей при нажатии на кнопки и у меня все нормально работало...
Уважаемый V0v1k напишите пожалуйста в icq 389965420 для коммерческого разговора.
Jovfer
0 / 0 / 0
Регистрация: 03.09.2012
Сообщений: 6
05.09.2012, 14:28  [ТС]     Использование статус-бара для управления приложением #11
V0v1k, именно вызовы активити с кнопки на уведомлении? С которой версии API? Не акцентировал на этом внимание, но меня интересует решение для 10. С 11 вроде все просто.
Не уверен что именно раздел уведомлений нужен. Плеер, например, размещается выше. Даже по-моему выше оператора. Пока не нашел как работать с той областью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.09.2012, 21:01     Использование статус-бара для управления приложением #12
API 15 юзаю.

Добавлено через 52 секунды
попробуйте http://developer.android.com/tools/e...t-library.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2012, 20:43     Использование статус-бара для управления приложением
Еще ссылки по теме:
Android Разработка приложения для удаленного управления windows
Убрать статус бар Android
Android Собственный статус-бар
Изменить статус бар! Android
Как отключить статус на android > 4.6 Android

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

Или воспользуйтесь поиском по форуму:
Jovfer
0 / 0 / 0
Регистрация: 03.09.2012
Сообщений: 6
06.09.2012, 20:43  [ТС]     Использование статус-бара для управления приложением #13
Попробую.

Нет каких-либо идей по том как использовать не раздел уведомлений а блок выше?
Yandex
Объявления
06.09.2012, 20:43     Использование статус-бара для управления приложением
Ответ Создать тему
Опции темы

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