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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Програмный выбор основного "ланчера" - Android

06.07.2013, 09:55. Просмотров 1203. Ответов 10
Метки нет (Все метки)

Возможно ли?

Написал программу, которую хочу запускать по нажатию аппаратной кнопки "домой" (заменить стандартный ланчер). Обычно она (программа) ОДНА должна работать на устройстве.
Получается. При нажатии "домика" предлагает выбор между моей программой и стандартным ланчером (или список ланчеров) и галочка "использовать по умолчанию". Но... Если нажал галочку, то изменить уже ничего не могу.
Из моей программы не могу перейти ни в настройки, ни в список установленых программ. Теоретически можно "подделать" списки программ и открывать диалог выхода в настройки, и удалять мою программу - тогда ОС автоматически предлагает выбрать ДРУГОЙ ланчер.

Но хотелось бы принудительно отрывать диалог выбора ланчера по нажатии кнопки в моей программе.

Желательно кусочек кода...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2013, 09:55     Програмный выбор основного "ланчера"
Посмотрите здесь:

блокирование кнопок "Home" "Back" Android
Android Как заставить Eclipse "забыть" об ошибках в xml файлах?
Unexpected namespace prefix "map" found for tag fragment Android
Что означают конструкции "finally" и "throw new"? Android
Android Осуществить парсинг JSON с помощью готового макета "VKApiMessage"
Визуализация нажатия на изображение. Как поставить картинку на "нажатие" Android
Почему приложение может пропасть из "Похожие" топового приложения? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
08.07.2013, 01:27  [ТС]     Програмный выбор основного "ланчера" #2
Неужели никто не знает???

Уже нашел как ПОЛУЧИТЬ текущий Ланчер и узнать является ли моя программа ланчером...
Но как обнулить или програмно задать ланчер???

Поставил себе "GO Luncher Ex".
"Home" предлагает ВЫБРАТЬ ланчер из списка и поставить галочку "по умолчанию"
Поставил галочку на старый ланчер - больше не предлагает выбор
ВРУЧНУЮ запустил "GO Luncher Ex" из списка программ и "по умолчанию" ОБНУЛИЛОСЬ - снова требует выбрать ланчер.
Тоже ТАК хочу! КАК програмно ОБНУЛИТЬ ланчер по умолчанию? Или как ВРУЧНУЮ задать ланчер по умолчанию?
GiGaBiTe911
24 / 24 / 1
Регистрация: 04.02.2013
Сообщений: 132
Записей в блоге: 1
08.07.2013, 12:06     Програмный выбор основного "ланчера" #3
вам нужно переопределить HOME и BACK кнопки.
как это сделать можете посмотреть к примеру здесь, здесь и здесь
все выше приведенные способы проверены мной лично. а ВОТ еще один интересный вариант с исходниками. сам не проверял, на ваш страх и риск, как говорится
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.07.2013, 04:25  [ТС]     Програмный выбор основного "ланчера" #4
Цитата Сообщение от GiGaBiTe911 Посмотреть сообщение
вам нужно переопределить HOME и BACK кнопки.
Решение оригинальное, хотя и не то, что мне нужно... Мне нужно определять свою программу как ЛАНЧЕР. В программе КУЧА окошек(вьювов) и в каждом перехватывать хоме+блокировать/подменять (если я правильно понял)системную клавиаутуру не подойдет...
Я планирую запускать свою программу в режиме КАССЫ (кажется так называется) - все лишнее максимально отключено(пользователь получает "прошитое" устройство). И даже если теоретически можно взломать, то хотя-бы что-бы ломали не СЛУЧАЙНО. ВСЕ необходимые функции планирую переопределить (вплоть до ограниченой телефонной книжки). Программа будет в автозагрузке. Но введя пароль администратора в настройках можно вернуться к класическому ланчеру для тонкой настройки или сделать программу "загружаемой по необходимости". Или хотя-бы получить выбор какой ланчер запустить (сбить ланчер по умолчанию).

Пока что вышел на http://en.wikipedia.org/wiki/List_of_Android_Launchers и список ланчеров -опенсорсов. Думаю покопать их исходники.

p.s. Еще советовали заглянуть во встроенные примеры SDK "Home". Запустить не получилось - возможно нужно переустановить среду или долго играться с настройками (студия и еклипс сказали что это "не правильный" проект). Не подскажите, кто-нибудь пробовал запускать этот пример? Там ланчер или просто пример скринсейвера?
GiGaBiTe911
24 / 24 / 1
Регистрация: 04.02.2013
Сообщений: 132
Записей в блоге: 1
11.07.2013, 11:23     Програмный выбор основного "ланчера" #5
Цитата Сообщение от Tester64 Посмотреть сообщение
Решение оригинальное, хотя и не то, что мне нужно...
это какраз то что нужно. я делал такой же пример как вам нужен. (программа стартовала при включении устройства и нельзя было запустить стандартный ланчер кнопками "бэк" или "хоум". вообщем.. все куак вам нужно) если найду исходники - скину.
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
11.07.2013, 16:25     Програмный выбор основного "ланчера" #6
Цитата Сообщение от Tester64 Посмотреть сообщение
в каждом перехватывать хоме+блокировать/подменять (если я правильно понял
Не надо везде.
Создайте класс наследующий Activity (или Fragment или etc.. в зависимости от того что используете) и остальные свои класс наследуйте от него.

Либо, вероятней всего, это настривается в манифесте для всего приложения,
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.07.2013, 20:06  [ТС]     Програмный выбор основного "ланчера" #7
Цитата Сообщение от GiGaBiTe911 Посмотреть сообщение
это какраз то что нужно. я делал такой же пример как вам нужен. (программа стартовала при включении устройства и нельзя было запустить стандартный ланчер кнопками "бэк" или "хоум". вообщем.. все куак вам нужно) если найду исходники - скину.
Спасибо! Очень жду исходники!
GiGaBiTe911
24 / 24 / 1
Регистрация: 04.02.2013
Сообщений: 132
Записей в блоге: 1
12.07.2013, 15:54     Програмный выбор основного "ланчера" #8
вообщем... первых исходников не нашел. но в аттаче выкладываю похожее, не совсем доделанное но вам должно помочь. проект создан в андроид студиии. если работаете в эклипсе - просто посмотрите манифест, особое внимание обратите на:
XML
1
2
3
<category android:name="android.intent.category.HOME" />                 
        <category android:name="android.intent.category.DEFAULT" />               
        <category android:name="android.intent.category.MONKEY"/>
так ваше активити устанавливается по умолчанию при включении девайса и в качестве домашнего (при нажатии на кнопку HOME и BACK) а в самом классе можете посмотреть переопределение этих кнопок.
Вложения
Тип файла: zip keylockTest.zip (1.19 Мб, 7 просмотров)
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
14.07.2013, 21:06  [ТС]     Програмный выбор основного "ланчера" #9
Цитата Сообщение от GiGaBiTe911 Посмотреть сообщение
вообщем... первых исходников не нашел. но в аттаче выкладываю похожее, не совсем доделанное но вам должно помочь. проект создан в андроид студиии. если работаете в эклипсе - просто посмотрите манифест, особое внимание обратите на:
XML
1
2
3
<category android:name="android.intent.category.HOME" />                 
        <category android:name="android.intent.category.DEFAULT" />               
        <category android:name="android.intent.category.MONKEY"/>
так ваше активити устанавливается по умолчанию при включении девайса и в качестве домашнего (при нажатии на кнопку HOME и BACK) а в самом классе можете посмотреть переопределение этих кнопок.
НЕ работат! Рабтаю в студии. Успешно запустил. Просто добавило 3й ланчер в сисетму (обычный, моя программа, Ваша программа) и галочку на "сделать дефолтной". Кнопку HOME НЕ перехватывает. Когда разремарил "тост" на нажатие - тост не появляется. Когда разремарил переопредиление onAttachedToWindow начало зависать при старте!

Устройство - планшет 4.00
GiGaBiTe911
24 / 24 / 1
Регистрация: 04.02.2013
Сообщений: 132
Записей в блоге: 1
15.07.2013, 10:19     Програмный выбор основного "ланчера" #10
странно... у меня все работает. плангшет киндл фаер, андроид 4.1.2. может у вас уже слишком много ланчеров?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2013, 12:53     Програмный выбор основного "ланчера"
Еще ссылки по теме:

Notification вывод строки с символами перехода на новую строку "\n" Android
Как добавить строку "." в начале в ListView со своим обработчиком Android
Услуга - "поругайте мой код" есть тут такая?) Android
"Error while reading RSS" при попытке загрузить новости Android
Android UnknownHostException: Unable to resolve host "api.openweathermap.org"

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

Или воспользуйтесь поиском по форуму:
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
15.07.2013, 12:53  [ТС]     Програмный выбор основного "ланчера" #11
Цитата Сообщение от GiGaBiTe911 Посмотреть сообщение
может у вас уже слишком много ланчеров?
Смешно! 3 - не много! Бывало и 8-10 когда пытался понять возможности программ на андроид - ставил все что находил. Думаете, если снесу свою программу (3й ланчер) будет лучше? ...попробую, но врядли.
Yandex
Объявления
15.07.2013, 12:53     Програмный выбор основного "ланчера"
Ответ Создать тему
Опции темы

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