Как убрать поиск на главном экране андроид

Содержание

Поисковая строка

Поисковая строка в панели уведомлений или на заблокированном экране вашего устройства обеспечивает быстрый доступ к поиску Яндекса, а также может содержать различные информеры, например погоды или пробок.

Добавить строку

Для каждой карточки, которую вы хотите видеть на главном экране приложения, установите переключатель в положение «Включен» .

Настроить строку

Удалить строку

Почему у меня две строки

Кроме приложения Яндекс собственную поисковую строку имеют и другие приложения, например Яндекс.Браузер или Карты. Поэтому существует вероятность появления нескольких поисковых строк на вашем устройстве.

При необходимости вы можете отключить отображение лишних поисковых строк в настройках соответствующих приложений.

Поисковая строка

Поисковая строка в панели уведомлений или на заблокированном экране вашего устройства обеспечивает быстрый доступ к поиску Яндекса, а также может содержать различные информеры, например погоды или пробок.

Добавить строку

Для каждой карточки, которую вы хотите видеть на главном экране приложения, установите переключатель в положение «Включен» .

Настроить строку

Удалить строку

Почему у меня две строки

Кроме приложения Яндекс собственную поисковую строку имеют и другие приложения, например Яндекс.Браузер или Карты. Поэтому существует вероятность появления нескольких поисковых строк на вашем устройстве.

При необходимости вы можете отключить отображение лишних поисковых строк в настройках соответствующих приложений.

Как восстановить Яндекс браузер на телефоне Андроид

Сегодня в статье расскажем как восстановить Яндекс браузер на телефоне Андроид. Бывают случаи когда приложение вылетает или на экране появляется предупреждение «Приложение остановлено» или «Приложение не отвечает». Так же по неосторожности пользователи, либо дети могут удалить приложение со смартфона. Так же часто возникает вопрос когда удаляется поисковая строка с главного экрана смартфона. По этому мы разобьем статью на две части, сначала расскажем как вернуть поисковую строку, а ниже как установить новую версию Яндекс.Браузера на телефон.

Как вернуть поисковую строку Яндекс на главный экран

Для возвращения строки поиска на главный экран телефона сделайте следующее:

  1. Откройте меню и найдите приложение Яндекс на вашем устройстве и нажимаем иконку настроек.

Нажимаем на пункт Настройки в Яндекс

Находим пункт Строка поиска

Активируем пункт Поисковая строка

Восстановление браузера

Что бы восстановить сам браузер будем исходить из ваших потребностей и мощности вашего смартфона. Для закачки браузера откройте Play Маркет. И в поисковой строке введите «Яндекс». В результатах поиска отобразится сразу несколько приложений. Ниже мы вкратце рассмотрим каждое из них.

  • Яндекс с Алисой – это основное мобильное приложение. Включает в себя голосового помощника, Яндекс.Дзен, музыку, игры, кино и сводки новостей. В общем набор максимум. Подробнее про Алису можно почитать тут: Секреты, скрытые функции и игры Яндекс Алисы.
  • Яндекс.Браузер с Алисой – это мобильный браузер для просмотра веб страниц и сёрфинга на просторах Интернета.
  • Яндекс. Браузер лайт – это облегченная версия браузера для смартфона. Если ваше смартфон не очень быстрый или содержит малый объем встроенной памяти рекомендуем скачать облегченную версию.

Разновидности Яндекс приложений

Пользователям Xiaomi устройств можно воспользоваться обновленным приложением GetApps для загрузки Яндекс программ, там находятся те же утилиты и игры что и в Play Маркет, но хранятся на серверах Сяоми.

Заключение

Надеюсь вы разобрались как вернуть поисковую строку на главный экран телефона или восстановить Яндекс браузер. Напишите в комментариях ответила ли статья на ваши вопросы или что-то осталось непонятным. Мы всегда стараемся давать обратную связь нашим читателям. Поможем вам разобраться с другими вопросами по работе Андроид и IOS смартфонов, решении ошибок.

Как убрать строку поиска Яндекс из шторки уведомлений на смартфоне

В шторке уведомлений (другое название – панель уведомлений) отображаются различные оповещения, однако там ещё и могут размещаться различные объекты, среди которых и поисковая строка Яндекс, причём она там размещается на постоянно основе. Данную строку даже смахнуть не представляется возможным, из-за чего может возникнуть серьёзный дискомфорт при пользовании смартфоном.

И если вы из тех пользователей, что ценят минимализм и считают, что в шторке уведомлений смартфона не должно быть закреплённых объектов, которые мешают восприятию действительно важных оперативных оповещений, то это материал придётся вам по душе.

Поисковая строка Яндекс, что размешена в шторке уведомлений, берёт своё начало из установленного на смартфон приложения «Яндекс Браузер». И как следствие – именно там её отображение и настраивается.

Давайте посмотрим, как отключить демонстрируемую строку поиска от Яндекс в шторке мобильной операционной системы, которая по задумке авторов предназначается в первую очередь для получения и отображения оперативных оповещений и сообщений.

Отключение поисковой строки Яндекс в шторке уведомлений Android

  1. Так как формируется и выводится поисковая строка по прямому указанию установленного в систему «Яндекс браузера», то его и необходимо запустить. Сделав это, в интерфейсе нажмите на кнопку, что вызывает меню. Данная кнопка обозначена тремя вертикально располагающимися точками, на изображении ниже можно визуально понять, о чём идёт речь.

После того, как вы нажмёте, вы увидите длинное меню с различными пунктами, что будет раскрыто. Среди них имеется и пункт Настройки – он нам и нужен, выберите его.

Будет отрыта страница, в котором большое количество разнообразных опций и настроек. Среди них имеется и отдельно располагающийся пункт, именуемый Уведомления – нажмите по нему.

В открывшейся странице с настройками, относящимися к уведомлениям, имеется и явным образом нужным нам. Отключите имеющуюся там опцию, которая выводит поиск.

Сделав это, поисковая строка моментально исчезнет из шторки уведомлений и более не будет попадаться на глаза.

Выполнив описанные шаги, вы полностью уберёте поисковую строку от российской компании Яндекс. Теперь там будут отображаться только действительно важные и необходимые уведомления и ничего не будет отвлекать от их прочтения.

В свою очередь, Вы тоже можете нам очень помочь.

Просто поделитесь статьей в социальных сетях с друзьями.

Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!

Как убрать строку яндекс на андроид

Краткое описание:
Безопасный и быстрый браузер с голосовым поиском.

  • Поддержка расширений Opera и Chrome позволяет добавить в браузер практически любые нужные вам функции.
  • Технология активной защиты Protect предупреждает пользователей об опасных сайтах, предотвращает утечку личных данных в публичных Wi-Fi-сетях и проверяет загружаемые файлы на вирусы.
  • Режим Турбо 2.0 ускоряет загрузку страниц, картинок и видео в браузере и делает пользование интернетом комфортным даже на низкой скорости доступа.
  • Блокировка рекламы позволяет избавиться от назойливых баннеров на интернет-страницах. Для этого необходимо подключить внешнее приложение-блокировщик.
  • Режим чтения убирает все интерфейсные элементы, не относящиеся к открытой публикации — рекламу, меню сайта, кнопки, социальные виджеты и прочее. На экране остаются только текст, иллюстрации и другие составляющие интересной вам статьи.
  • Технология Антишок автоматически отключает непристойные и шокирующие баннеры. Она также блокирует рекламу, которая угрожает безопасности устройства или данных.
  • Дзен показывает статьи и видео на темы, которые интересны именно вам. Он сам находит их в интернете и собирает в одну ленту.
  • Фоны позволяют изменять внешний вид новых вкладок по настроению. В для можно использовать как предустановленные варианты оформления, так и картинки со своего устройства.
  • Умная строка открывает сайты по их названиям, а не адресам (например, «ведомости» или «википедия»), даёт моментальные ответы на простые вопросы («курс доллара») и легко переводит иностранные слова.
  • Инкогнито помогает обойтись без лишних следов: в этом режиме браузер не сохраняет пароли, данные для автозаполнения, поисковые запросы и адреса посещённых страниц.
  • Синхронизация с помощью аккаунта в Яндексе автоматически перенесет закладки для компьютера на ваше мобильное устройство.

Требуется Android: 4.1+
Русский интерфейс: Да

Версия: 19.4.1.435 Яндекс.Браузер — с Алисой с GP (Иван Н)
Версия: 19.4.0.535 Яндекс.Браузер — с Алисой с GP (Иван Н)
Версия: 19.3.5.299 Сообщение №9722, автор gorand39
Версия: 19.3.4.339 Яндекс.Браузер для Android
Версия: 19.3.1.333 Сообщение №9579, автор gorand39
версия: 18.11.0.1411 (arm) Яндекс.Браузер для Android (Пост Иван Н #80288024)
Версия: 18.10.2.119 (arm) Яндекс.Браузер для Android (Пост Ramzes26 #79973998)
Версия: 18.10.2.113 (arm) Яндекс.Браузер для Android (Пост Ramzes26 #79834361)
Версия: 18.7.1.575 (arm) Сообщение №8012, автор Иван Н
Версия: 18.7.1.595 (arm) Сообщение №8054, автор Иван Н
Версия: 18.7.0.823 (arm) Яндекс.Браузер для Android (Пост Иван Н #76109838)
Версия: 18.4.1.529 (arm) Сообщение №7133, автор Иван Н
Версия: 18.4.1.513 (arm) Сообщение №7113, автор Иван Н
Версия: 18.4.1.498 (arm) Сообщение №7069, автор Иван Н
Версия: 18.4.1.488 (arm) Сообщение №7041, автор Иван Н
Версия: 18.4.0.649 (arm) Сообщение №6989, автор GREYVK1979
Версия: 18.1.2.70 (x86) Яндекс.Браузер для Android (Пост denrusvrn #70400381)
Версия: 18.3.1.651 (arm) Сообщение №6713, автор Иван Н
Версия: 18.1.2.70 (arm) Сообщение №6613, автор Иван Н
Версия: 17.11.1.628 (x86) Яндекс.Браузер для Android (Пост TimurYandex #69359455)
Версия: 18.1.1.645 (arm) Яндекс.Браузер для Android (Пост denrusvrn #70400381)
Версия: 18.1.1.642 (arm) Яндекс.Браузер для Android (Пост Иван Н #71203272)
Версия: 18.1.0.507 (arm) Сообщение №6268, автор denrusvrn
Версия: 17.11.0.526 Яндекс.Браузер для Android (Пост denrusvrn #68989504)
Версия: 17.10.2.135 (ARM/x86) Яндекс.Браузер для Android (Пост TimurYandex #67575177)
Версия: 17.11.0.519 (4.1+) Яндекс.Браузер для Android (Пост denrusvrn #68416953)
Версия: 17.10.2.145 (5.0+) Яндекс.Браузер для Android (Пост denrusvrn #68076029)
Версия: 17.10.1.370 (ARM/x86) Яндекс.Браузер для Android (Пост TimurYandex #67031478)
Версия: 17.10.0.446 (ARM/x86) Яндекс.Браузер для Android (Пост TimurYandex #66775595)
Версия: 17.9.0.523 (arm) Яндекс.Браузер для Android (Пост Иван Н #65415681)
Версия: 17.6.1.345 (arm/x86) Яндекс.Браузер для Android (Пост TimurYandex #64120753)
Версия: 17.7.0.1178 (arm) Яндекс.Браузер для Android (Пост Иван Н #65415681)
Версия: 17.6.0.312 (arm/x86) Яндекс.Браузер для Android (Пост TimurYandex #63399431)
Версия: 17.4.1.352 (arm/x86) Яндекс.Браузер для Android (Пост denrusvrn #62874020)
версия: 17.4.0.544 ARM Яндекс.Браузер для Android (Пост Иван Н #62497075)
версия: 17.3.2 ARM/x86 Яндекс.Браузер для Android
версия: 17.3.2.414 ARM Яндекс.Браузер для Android (Пост dorik-xxx #61672758)
версия: 17.3.1.383 ARM (5.0+) Яндекс.Браузер для Android (Пост yurochka2005 #60921351)
версия: 17.3.1 Яндекс.Браузер для Android
версия: 17.3.1.274 Яндекс.Браузер для Android (Пост Siemens92 #59737945)
версия: 17.3.0.373 (5.0+) (arm) Яндекс.Браузер для Android (Пост yurochka2005 #59736196)
версия: 17.3.0.373 (4.0+) (arm) Яндекс.Браузер для Android (Пост Pashulik #59852950)
версия: 17.3.0.373 (4.0+) (x86) Яндекс.Браузер для Android (Пост Mihail_IvM #59882512)
версия: 17.1.1 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 17.1.2 (arm) Яндекс.Браузер для Android (Пост Pashulik #59194918)
версия: 17.1 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.11 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.10 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.9.1 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.9 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.7.1 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.7.0 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.6.1 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.6 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.4 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.2.2 (arm/x86) для Android (Пост TimurYandex #49060673)
версия: 16.2.1 (arm/x86) для Android (Пост TimurYandex #48259187)
версия: 16.2.0.5397 Final для Android (Пост Иван Н #47239626)
версия: 14.4.1750.13463 для x86 Яндекс.Браузер (Пост #31037055)
версия: 15.12.2.6773 Final для Android (Пост Иван Н #46606486)
версия: 15.12.1.6403 Final Яндекс.Браузер для Android (Пост Иван Н #46416289)
версия: 15.12.2.6516 Alpha для Android (Пост kотиг #45665884)
версия: 15.10.2454.3845 Final для Android (Пост Иван Н #44748507)
версия: 15.12.2490.4113 Alpha Яндекс.Браузер для Android (Пост pokpok #44480140)
версия: 15.6.2311.6088 для Android (Пост Иван Н #43473509)
версия: 15.12.2490.3655 Alpha

Yandex.Browser_15.12.2490.3655_Alpha.apk ( 33,28 МБ )
версия: 15.6.2311.5718 (Пост Иван Н #42724285)
версия: 15.4.2272.3842 Яндекс.Браузер (Пост Иван Н #40648664)
версия: 15.4.2272.3608 (Пост Иван Н #40245390)
версия: 15.2.2214.3725 Яндекс.Браузер (Пост Dan654 #39111548)
версия: 14.12.2125.9740 (Пост #36737841)
версия: 14.10.2062.11375 Яндекс.Браузер (Пост #35302167)
версия: 14.8.1985.12002 Final (Пост #34608879)
версия: 14.5.1847.18432 Яндекс.Браузер (Пост #32208895)
версия: 14.5.1847.18211 Яндекс.Браузер (Пост #31801992)
версия: 14.4.1750.13427 (Пост #30906777)
версия: 14.2.1700.12535 Яндекс.Браузер (Пост #29880492)
версия: 14.2.1700.12147 (Пост #29327304)
версия: 13.12.1599.12975 Яндекс.Браузер (Пост #28671940)
версия: 13.12.1599.12218 (Пост #27614511)
версия: 13.11 //4pda.ru/forum/dl/post/3724773/Yandex_Browser_13_11.apk
версия: 13.9.1500.3524 //4pda.ru/forum/dl/post/3495936/yandex.browser-v13.9.1500.3524.apk
версия: 1.20.1364.172 Яндекс.Браузер (Пост #24035673)
версия: 1.1.1364.172 //4pda.ru/forum/dl/post/3154458/com.yandex.browser-2.apk
версия: 1.0.1364.172 Яндекс.Браузер.apk ( 28,59 МБ )

Сообщение отредактировал iMiKED — 28.11.19, 05:40

cool_cool_dude,
никак не могу вынуть из телефона.

кто даст апк тому +

Сообщение отредактировал FindYanot — 18.06.13, 18:08

Щас установлю и вытащу
Вот apk:

Яндекс.Браузер.apk ( 28,59 МБ )

Сообщение отредактировал Vlad_Aero — 18.06.13, 18:22

Как убрать поисковую строку гугл на андроиде. Как удалить встроенные Яндекс приложения с планшета

Когда Nexus 5 был запущен вместе с Андроид 4.4 KitKat, был так же представлен новый лаунчер (загрузчик) на этом флагманском смартфоне Гугла. Лаунчер содержит Google Now непосредственно на главном экране.

На Nexus 5 вам больше не надо листать вверх кнопку «Домой» для доступа к Google Now. Google Now постоянное находится на рабочем столе с левого края. Свайп вверх покажет Google Now и все ваши личные карточки и, конечно, вы все равно можете получить доступ к службе, свайпом кнопки «домой» вверх.

Для некоторых эта функция станет более полезной, так как она теперь готова к использованию сразу, а не скрыта. Но других, я думаю, она будет раздражать, из-за установки её в качестве выделенного домашнего экрана, особенно, если они не большие поклонники Google Now.

Удаление Google Now с главного экрана может быть выполнена одним из двух способов. Есть свои преимущества и недостатки этих методов, так что я оставлю на ваше усмотрение решить, что лучше подходит лично вам.

Отключение Google Now.
Первый способ — отключить Google Now вообще. Вы можете сделать это, запустив Google Now и нажав на кнопку меню, а за тем кнопку настройки. Переведите тумблер Google Now в положение «Откл» и примите предупреждение о том, что ваши карточки будут сброшены. У вас больше не будет возможности листать влево, чтобы просмотреть карточки, но вы по-прежнему сможете быстро запустить Поиск Гугла, проводя пальцем вверх на кнопке «Домой» или использую командную фразу «OK Google».

Это удалит Google Now из списка домашних экранов, но это также отключит функциональность, обеспечиваемую службой Google Now. Очевидно, что это не очень большой выигрыш, по сравнению с потенциально большей потерей.

Использование другого лаунчера.
Второй способ заключается в установке стороннего лаунчера. Лаунчер на Андроиде — это приложение, которое позволит вам настроить производительность устройства, помимо тех мер, которые предоставляет загрузчик по умолчанию. Каждый производитель устройств имеет свой собственный лаунчер, но есть некоторые действительно хорошие загрузчики независимых разработчиков.

Установка таких как лаунчеров, как Nova Launcher или Apex Launcher позволит вам настроить не только иконки приложений, но и оставить Google Now включённым и в то же время убрать его из главного экрана.

Так что, товарищи владельцы Nexus 5, что будет дальше? Google Now будет присутствовать на вашем рабочем столе или вы избавитесь от него?

Многие хотят знать, как можно убрать строку поиска Google на девайсах с Android. Разработчики этой операционной системы всегда стремятся навязать обладателям смартфонов свои сервисы, причем многие из них занимают почетные места в основном меню и даже на главном экране.

Поисковый виджет Гугл по умолчанию располагается на рабочем столе каждого нового устройства Android. Если человек не использует эту строку или считает, что она занимает много места на главной странице, то от нее можно избавиться. Разработчики Android стремятся к тому, чтобы служба Google Now стала популярной. В связи с этим возле поисковой строки появился даже значок микрофона для голосового набора. Если бы на главном экране отсутствовала эта функция поиска, то это негативно повлияло бы на ее популярность.

Способы для Samsung и Sony Xperia

Обычно пользователи желают отключить Google из-за того, что панель занимает слишком много пространства, которое можно было бы использовать для размещения значков приложений. Удалить эту панель несложно, но процесс может отличаться в зависимости от модели используемого устройства. Например, на телефонах Samsung и LG она убирается так же, как и любой другой виджет на экране. Однако на смартфонах Sony Xperia этот метод отключения не работает.

Для того, чтобы удалить Google поиск с экрана гаджета Samsung, нужно выполнить следующие действия:

  1. нажать на панель для поиска и удерживать палец некоторое время;
  2. перетащить виджет на значок с изображением корзины в верхней части экрана.

Чтобы убрать поиск на девайсе Sony, необходимо выполнить такие шаги:

  • нажать на строку и удерживать палец некоторое время, в результате чего должно появиться новое меню;
  • нажать кнопку «Скрыть», расположенную в верхней части экрана возле панели поиска;
  • нажать Home или Return;
  • с этого момента панель должна быть скрыта.

Другие методы

Еще 1 простой способ избавиться от поисковой строки — это установка лаунчера, такого как Nova Launcher или Apex Launcher. Это программное обеспечение позволяет настраивать устройство Android в соответствии со своими предпочтениями (чтобы оно выглядело именно так, как желает пользователь). Некоторые лаунчеры можно скачать бесплатно.

Альтернативный способ — это удаление за счет рутинга мобильного устройства. Тот, кто хоть раз использовал этот метод, наверняка убирал с его помощью множество ненужных функций. Если есть доступ к корню телефона, можно без проблем удалить и поисковую панель Google.

Рутинг — это получение полного контроля над своим смартфоном. Достаточно будет установить любой пользовательский ROM, чтобы убрать ненужную строку. При этом нужно иметь в виду, что рутинг — это грубое нарушение пользовательского соглашения, после которого теряется право на гарантийный ремонт.

Мы привыкли, что с назойливыми приложениями от Mail.ru и Яндекс можно столкнуться только на компьютере. Но вы наверняка были удивлены, когда обнаружили их в новом планшете. Компании пытаются прорекламировать себя любыми способами, поэтому не стоит удивляться их настойчивости. Эти приложения относятся к встроенным программам, также их можно назвать системными. Отличаются они от обычных приложений тем, что удалить системные сервисы обычными способами нельзя. В этом материале подробно рассказывается, как удалить продукты Яндекс.

Есть два способа убрать сервисы Яндекс с вашего планшета:

  • Отключение программ – для этого вам не понадобятся права разработчика (ROOT). Сервисы Яндекса перестанут функционировать, не будут нагружать процессор, исчезнут из всех меню. Настройка будет сохраняться и при перезагрузке планшета. Единственный недостаток заключается в том, что приложения останутся в памяти вашего гаджета.
  • Удаление встроенных приложений Яндекс – это действие можно выполнить, если на гаджете присутствует ROOT доступ. Приложения полностью удалятся с устройства. В отличие от других системных сервисов, продукты Яндекс на работу планшета влияния не оказывают.

Если вы начинающий пользователь, то выбирайте первый вариант. ВАЖНО! Установка Root прав лишит вашего планшета гарантийного срока.

Выключаем Яндекс приложения

Схема одинакова для всех гаджетах, работающих на платформе Android:

  1. Заходим Настройки , находим там раздел Приложения или Управление приложениями .
  2. Здесь вы увидите список программ, которые установлены на планшет. Будут здесь и встроенные продукты Яндекс.
  3. Перед тем, как отключить программу, необходимо нажать кнопку Остановить . Теперь сотрите данные, в настройка будет функция Очистить кэш .
    Данные о работе программы удалены, теперь нажимаем Отключить . Android предупредит вас, что отключение Яндекс продуктов может повлиять на работу других сервисов. Готово!

Как убрать значок геолокации на телефоне?

Как включить или отключить функцию определения местоположения

  1. Проведите по экрану сверху вниз.
  2. Нажмите на значок «Геолокация» и удерживайте. …
  3. Выберите Дополнительно Определение местоположения.
  4. Включите или отключите параметр Определять местоположение точнее.

Как убрать значок из шторки андроид?

Есть и более быстрый способ. Проведите пальцем сверху вниз по экрану, чтобы опустить «шторку» панели уведомлений. Нажмите на уведомление от приложения, которое вы хотите скрыть, и подержите палец на нём пару секунд.

Как убрать значок GPS на андроиде?

Прокрутите вниз и нажмите на «Безопасность и конфиденциальность». Здесь выберите «Данные о местоположении». Переведите переключатель «Доступ к данным местоположении» в положение «Выключено». Теперь GPS на Вашем устройстве Android выключен.

Как убрать значок карты памяти?

Шаг 2. Удаление файлов, сохраненных во внутреннем накопителе смартфона.

  1. Зайдите в настройки своего устройства.
  2. Выберите «Память».
  3. Выберите пункт «Внутренняя память».
  4. Выберите, какой тип файлов вы хотите удалить.
  5. Долгим нажатием выберите те файлы, которые нужно удалить.
  6. Выберите значок корзины.

Как убрать значок трансляции?

Поделюсь, вдруг кому понадобится.

  1. Выдвигаем панель уведомлений, зажимаем значок настроек секунд 5 и отпускаем. Включается опция «SYSTEM UI TUNER», которой будет в настройках.
  2. Идем по адресу Настройки>Система>System UI tuner>Строка состояния
  3. Убираем галочку с «Трансляция»

18 апр. 2018 г.

Как узнать местоположение человека по номеру телефона без его согласия бесплатно?

Это услуга «Маячок», действующая на детских тарифах («Ринг-Динг», «Смешарики» и т. п.). Наберите на вашем мобильном телефоне команду *141 # и добавьте номер сотового телефона ребенка. Вы сможете узнать его местонахождение без согласия в любое время.

Как убрать значок в строке состояния?

Настройка отображение иконок в строке состояния очень простая — просто нажмите на переключатель, чтобы скрыть этот значок. Изменения вступают в силу в режиме реального времени, поэтому Вы можете увидеть изменения сразу же.

Как убрать значок 3G на андроид?

Первый пункт называется «Мобильная сеть». Он нам и нужен — тапните по нему. На следующей страничке выбираем «Тип сети». Теперь можем выбрать предпочтительный тип сети: только 2G (для энергосбережения), только 3G или предпочтительно 3G.

Что такое геолокация на телефоне?

Геолокация — это определение реального местоположения электронного устройства, которым в нашем случае выступает смартфон или телефон. Геолокация не привязана к спутниковым системам, местоположение может определяться по расположению станций сотовых сетей. Или, к примеру, с помощью подключения к сети интернет.

Что надо чтоб пользоваться GPS на смартфоне?

Как включить GPS на Android?

  1. Верхняя шторка. Проведите по дисплею сверху вниз и в открывшемся меню нажмите кнопку «Местоположение», «Геолокация» или «Геоданные» (зависит от версии Android).
  2. В настройках Android найдите пункт аналогичные пункты передвиньте флажок в положение «Включено».

4 нояб. 2017 г.

Как улучшить работу GPS на Android?

Перейдите в «Настройки», далее в «Настройки местоположения». В этом разделе вам нужно перейти к пункту «Расширенные настройки» и выбрать пункт «Улучшение точности позиционирования». Также неплохо было бы включить Wi-Fi для того, чтобы точки доступа также улучшали определение вашего места на карте.

Что за значок появилась на экране телефона?

Что означает значок звездочка на экране телефона

Звездочка появляется на смартфонах с версией Андроид от 5.0. Она означает активированный режим демонстрации важных уведомлений.

Что означают значки в левом верхнем углу телефона?

Значки слева отображают информацию о приложениях, например, о новых сообщениях или загрузках. … Значки справа отображают информацию о телефоне, например, уровень заряда батареи и состояние сетевого подключения.

Структура данных приложения:

Создана коллекция storehouse со следующими полями:

  1. platform (String)
  2. cameraInfo (String)
  3. deviceName (String)
  4. colorsAvailable (Array)
  5. devicePrice (Number)
  6. buyers (Array)
  7. lastSend (Date)
  8. sendInfo (File)

В системную коллекцию Roles добавлены 3 документа со следующими значениями поля name соответственно:

  1. deliveryPerson
  2. accountantPerson
  3. loaderPerson

Стартовый экран приложения.

Создадим стартовый экран приложения с именем LoginActivity. Для этого в Android Studio выберем File → New → Activity → Empty Activity и в layout-файл данной активности добавим следующий код:


            
        
LoginActivity

Cтартовый экран приложения

Рисунок 1.1 – стартовый экран приложения.

В метод onCreate класса LoginActivity добавим следующий код:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    if (isUserLogined(this)) {
        MainActivity.display(this);
    }
    ScorocodeSdk.initWith(APPLICATION_ID, CLIENT_KEY, null, FILE_KEY, MESSAGE_KEY, SCRIPT_KEY, null);
    ButterKnife.bind(this);
}

В методе onCreate данного класса происходит инициализация ScorocodeSdk ключами appId, clientKey (android), fileKey, messageKey, scriptKey при помощи метода ScorocodeSdk.initWith(...); Посмотреть данные ключи можно на вкладке «Безопасность» настроек проекта.

На данном экране пользователь БД может ввести свой логин и пароль и системе. Приложения проведет проверку правильности введенных данных при помощи метода .login() класса User. Использование данного метода показано в листинге:

@OnClick(R.id.btnLogin)
public void onBtnLoginClicked() {
    User user = new User();
    user.login(etEmail.getText().toString(), etPassword.getText().toString(), new CallbackLoginUser() {
        @Override
        public void onLoginSucceed(ResponseLogin responseLogin) {
            DocumentInfo userInfo = responseLogin.getResult().getUserInfo();
            saveUserInfo(userInfo);
            MainActivity.display(LoginActivity.this);
        }
        @Override
        public void onLoginFailed(String errorCode, String errorMessage) {
            Helper.showToast(getBaseContext(), R.string.error_login);
        }
    });
}

В данном методе мы создаем новый экземпляр класса User и вызываем его метод login при этом информацию о email и password пользователя мы берем из соответствующих EditText. Метод login проверит тот факт, что пользователь с таким email и паролем существует в коллекции «users».

В случае если в коллекции «users» имеется пользователь с указанными email и password, то будет выполнен метод onLoginSucceed(...) callback интерфейса иначе - onFoginFailed(...). Таким образом мы можем удостовериться в наличии пользователя с такими данными в нашей БД и принять дальнейшие действия.

На стартовом экране (показанном на рисунке 1.1) так же имеется кнопка «Зарегистрировать» позволяющая зарегистрировать нового пользователя в системе (добавить его в коллекцию «users» БД). Привяжем к данной кнопке обработчик нажатия который открывает активность с данными для регистрации пользователя:

@OnClick(R.id.btnRegister)
public void onBtnRegisterClicked() {
    RegisterActivity.display(this);
}

Экран регистрации нового пользователя

Создадим новую активность с именем RegisterActivity и добавим в layout-файл данной активности следующий xml код:


Экран регистрации нового пользователя

Рисунок 1.2 — экран регистрации нового пользователя.

На данном экране вводятся все необходимые поля документа (характеризующие пользователя). Добавим обработчик нажатия для кнопки «Зарегистрировать» вызывающий метод .register класса User для регистрации нового пользователя, показанный ниже:

@OnClick(R.id.btnRegister)
public void onBtnRegisterClicked() {
    String userName = etUsername.getText().toString();
    String email = etEmail.getText().toString();
    String password = etPassword.getText().toString();
    String passwordCheck = etPasswordCheck.getText().toString();

    if(isInputValid(userName, email, password, passwordCheck)) {
        new User().register(userName, email, password, new CallbackRegisterUser() {
            @Override
            public void onRegisterSucceed() {
                Toast.makeText(RegisterActivity.this, getResources().getString(R.string.register_succeed), Toast.LENGTH_SHORT).show();
                LoginActivity.display(RegisterActivity.this);
            }
            @Override
            public void onRegisterFailed(String errorCode, String errorMessage) {
                Toast.makeText(RegisterActivity.this, getResources().getString(R.string.error_register), Toast.LENGTH_SHORT).show();
            }
        });
    } else {
        Toast.makeText(this, getResources().getString(R.string.wrong_data) , Toast.LENGTH_SHORT).show();
    }
}

В данном методе мы получаем значения введенные в элементы EditText, а именно: имя пользователя, его email, пароль и пароль повторно (для проверки).

Далее при помощи метода isInputValid мы проверяем, что поля не являются пустыми и что значение, введенное в поля пароля и проверки пароля идентичны, после чего вызываем метод .register класса User.

В случае если регистрация пользователя прошла успешно (т.е если sdk инициализирован, все ключи указаны правильно и нет конфликта с уже существующими пользователями), будет выполнен метод onRegisterSucceed(...) callback интерфейса иначе будет выполнен метод onRegisterFailed(...).

В данном случае при успешной регистрации пользователя выдается Toast-сообщение с информацией о том, что пользователь успешно зарегистрирован и открывается активность LoginActivity чтобы пользователь мог аутентифицироваться и приступить к работе с приложением.

Главный экран приложения.

Создадим главный экран приложения с именем MainActivity и в layout-файл данной активности добавим следующий xml код:

Активность представляет собой ListView в который мы передаем информацию о товарах, хранящихся в БД. Кроме того активность содержит иконки ActionBar о которых будет сказано подробней.

Для отображения информации создадим адаптер с именем StoreItemAdapter код которого показан ниже:

package prof_itgroup.ru.storehouseapp.Objects;
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import prof_itgroup.ru.storehouseapp.Activities.ItemDetailsActivity;
import prof_itgroup.ru.storehouseapp.R;
import ru.profit_group.scorocode_sdk.scorocode_objects.DocumentInfo;

public class StoredItemsAdapter extends BaseAdapter {
    private Context context;
    private List storedItems;
    private int layoutId;
    private LayoutInflater inflater;
    private DocumentFields fields;
    public StoredItemsAdapter(Context context, @NonNull List storedItems, int layoutId) {
        this.context = context;
        this.storedItems = storedItems;
        this.layoutId = layoutId;
        inflater = LayoutInflater.from(context);
        fields = new DocumentFields(context, null);
    }
    @Override
    public int getCount() {
        return storedItems.size();
    }
    @Override
    public Object getItem(int position) {
        return storedItems.get(position);
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View view, ViewGroup parent) {
        ViewHolder holder;
        if (view != null) {
            holder = (ViewHolder) view.getTag();
        } else {
            view = inflater.inflate(layoutId, parent, false);
            holder = new ViewHolder(view);
            view.setTag(holder);
        }
        customizeView(view, holder, storedItems.get(position));
        return view;
    }
    private void customizeView(View view, ViewHolder holder, final DocumentInfo documentInfo) {
        String deviceName = (String) documentInfo.getFields().get(fields.getDeviceNameField());
        String devicePlatform = (String) documentInfo.getFields().get(fields.getPlatformField());
        Double devicePrice = (Double) documentInfo.getFields().get(fields.getDevicePriceField());
        holder.tvStoredItemName.setText(deviceName);
        holder.tvStoredItemStatus.setText(devicePlatform);
        holder.tvStoredItemPrice.setText(String.valueOf(devicePrice));
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ItemDetailsActivity.display(context, documentInfo);
            }
        });
    }
    static class ViewHolder {
        @BindView(R.id.tvStoredItemName) TextView tvStoredItemName;
        @BindView(R.id.tvStoredItemPlatform) TextView tvStoredItemStatus;
        @BindView(R.id.tvStoredItemPrice) TextView tvStoredItemPrice;
        public ViewHolder(View view) {
            ButterKnife.bind(this, view);
        }
    }
}

В качестве элемента списка используем следующий layout-файл:

 

Данные о товарах, хранящихся в БД мы будем получать в методе onResume() активности MainActivity. Для этого в метод onResume добавим следующий код:

@Override
protected void onResume() {
    super.onResume();
    Query query = new Query(COLLECTION_NAME);
    query.findDocuments(new CallbackFindDocument() {
        @Override
        public void onDocumentFound(List documentInfos) {
            if(documentInfos != null) {
                setAdapter(documentInfos);
            }
        }
        @Override
        public void onDocumentNotFound(String errorCode, String errorMessage) {
            Toast.makeText(MainActivity.this, getResources().getString(R.string.error_get_docs), Toast.LENGTH_SHORT).show();
        }
    });
}

В данном коде мы создаем экземпляр объекта Query не задавая параметров (т.е выбираем первые 100 документов из данной коллекции) и далее с помощью метода findDocument получаем документы из нашей коллекции.

В случае если удалось найти документы мы устанавливаем адаптер, иначе выдаем сообщение об ошибке.

Так же добавим необходимые иконки в ActionBar активности. Для этого создадим layout файл main_activity_menu и добавим туда следующий xml код:



Т.е в ActionBar мы будем отображать иконки «Добавить элемент в БД», «Установить фильтр» и «Завершить активную сессию пользователя» (logout). На экран активности данные иконки добавим при помощи следующего метода:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_activity_menu, menu);
    return super.onCreateOptionsMenu(menu);
}

Обрабатывать нажатия на иконки будем при помощи метода показанного ниже

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_add_item:
            AddItemActivity.display(this);
            break;

        case R.id.action_set_filter:
            new FilterDialog(this).showFilterDialog(new FilterDialog.CallbackFilterDialog() {
                @Override
                public void onFilterApplied(List documentInfo) {
                    setAdapter(documentInfo);
                }
            });
            break;

        case R.id.action_logout:
            LoginActivity.logout(this);
            break;
    }
    return super.onOptionsItemSelected(item);
}

Готовый экран данной активности показан на рисунке 2.1

главный экран приложения

Рисунок 2.1 — главный экран приложения.

На данном экране показаны текущие модели телефонов, присутствующие на складе. В верхнем правом углу экрана показаны следующие иконки:

Добавить новую модель в базу данных - Добавить новую модель в базу данных.

Применить фильтр к списку устройств - Применить фильтр к списку устройств.

Закончить активную сессию пользователя - Закончить активную сессию пользователя (logout).

При нажатии на кнопку Добавить новую модель в базу данных пользователь переходит на экран добавления устройства в БД.

Экран добавления устройства

Создадим активность с именем AddItemActivity и добавим в её layout-файл следующий xml код:

В свою очередь, включаемый файл item_core.xml представляет собой:


        
    
        
    
        
    

Итоговый вид активности показан на рисунке 2.2

Экран добавления нового устройства в БД

Рисунок 2.2 — Экран добавления нового устройства в БД.

На этом экране пользователь вводит всю необходиму информацию о устройстве и нажимает кнопку «ДОБАВИТЬ». При этом программа создает новый документ, заполняет его поля и сохраняет на сервере. Добавим данные действия: зададим обработчик нажатия кнопки «Добавить» который будет вызывать метод показанный ниже:

@OnClick(R.id.btnAddItem)
public void onBtnAddItemClicked() {
    Document document = new Document(MainActivity.COLLECTION_NAME);
    if (isAllFieldsFilled()) {
        document.setField(fields.getDeviceNameField(), getStringFrom(etDeviceName).trim());
        document.setField(fields.getPlatformField(), getStringFrom(etDevicePlatform).trim());
        document.setField(fields.getCameraInfoField(), getStringFrom(etDeviceCameraInfo).trim());
        document.setField(fields.getColorsAvailableField(), getColorsListFrom(getStringFrom(etDeviceColors)));
        document.setField(fields.getDevicePriceField(), Double.valueOf(getStringFrom(etDevicePrice)));
        document.saveDocument(new CallbackDocumentSaved() {
            @Override
            public void onDocumentSaved() {
                Toast.makeText(AddItemActivity.this, getString(R.string.succed_add_item), Toast.LENGTH_SHORT).show();
                finish();
            }

            @Override
            public void onDocumentSaveFailed(String errorCode, String errorMessage) {
                Toast.makeText(AddItemActivity.this, getString(R.string.error_add_item), Toast.LENGTH_SHORT).show();
            }
        });
    } else {
        Toast.makeText(this, getString(R.string.wrong_data), Toast.LENGTH_SHORT).show();
    }
}

В данном методе мы создаем экземпляр класса Document, проверяем заполнил ли пользователь всю информацию в соответствующих EditText и устанавливаем поля документа при помощи метода setField(…) после чего сохраняем документ. Поскольку документ создан без ассоциации с реальным документом из БД (т.е без использования метода getDocumentById(), то новый документ с указанными полями будет загружен на сервер.

Документы хранятся в БД Scorocode в виде показанном на рисунке 2.3

храниение документов в коллекции БД Scorocode

Рисунок 2.3 — храниение документов в коллекции БД Scorocode.

Каждый документ содержит системные и пользовательские поля. Системными являются:

  1. id — уникальный идентификатор документа в коллекции
  2. readACL — права на чтения данного документа.
  3. updateACL — права на обновление данного документа.
  4. removeACL — права на удаление данного документа.
  5. createdAt — время создания документа.
  6. updatedAt - время последнего обновления документа.

Пользователь может добавлять другие поля по своему усмотрению используя кнопку «Добавить поле» на верхней панели. Пользователь так же может добавить документ нажав кнопку «Добавить документ» на верхней панели и введя значения полей вручную. Более подробно о функциональности верхней панели БД см.документацию Scorocode.

При нажатии на кнопку Применить фильтр к списку устройств пользователь попадает в диалоговое окно фильтра.

Создадим данное диалоговое окно. Для этого создадим класс FilterDialog код которого показан ниже:

package prof_itgroup.ru.storehouseapp.Objects;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import butterknife.ButterKnife;
import prof_itgroup.ru.storehouseapp.Activities.MainActivity;
import prof_itgroup.ru.storehouseapp.Helpers.Helper;
import prof_itgroup.ru.storehouseapp.R;
import ru.profit_group.scorocode_sdk.Callbacks.CallbackFindDocument;
import ru.profit_group.scorocode_sdk.scorocode_objects.DocumentInfo;
import ru.profit_group.scorocode_sdk.scorocode_objects.Query;

public class FilterDialog {
    private Context context;
    public FilterDialog(Context context) {
        this.context = context;
    }
    public void showFilterDialog(final CallbackFilterDialog callbackFilterDialog) {
        final View v = LayoutInflater.from(context).inflate(R.layout.filter_layout, null);
        final CheckBox cbPriceFilter = ButterKnife.findById(v, R.id.cbPriceFilter);
        final CheckBox cbPlatformFilter = ButterKnife.findById(v, R.id.cbPlatformFilter);
        final CheckBox cbColourFilter = ButterKnife.findById(v, R.id.cbColorFilter);
        final EditText etPlatformFilter = ButterKnife.findById(v, R.id.etPlatformFilter);
        final EditText etColors = ButterKnife.findById(v, R.id.etColors);
        AlertDialog.Builder builder = new AlertDialog.Builder(context)
                .setTitle(R.string.titleChooseFilterProperties)
                .setPositiveButton(R.string.continue_action, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Query query = new Query(MainActivity.COLLECTION_NAME);
                        if (cbPriceFilter.isChecked()) {
                            setPriceFilter(v, query);
                        }
                        if (cbPlatformFilter.isChecked()) {
                            query.equalTo(new DocumentFields(context).getPlatformField(), etPlatformFilter.getText().toString());
                        }
                        if(cbColourFilter.isChecked()) {
                            List colors = new ArrayList();
                            colors.addAll(Arrays.asList(Helper.getStringFrom(etColors).split(",")));
                            query.containedIn(new DocumentFields(context).getColorsAvailableField(), colors);
                        }
                        query.findDocuments(new CallbackFindDocument() {
                            @Override
                            public void onDocumentFound(List documentInfos) {
                                 callbackFilterDialog.onFilterApplied(documentInfos);
                            }
                            @Override
                            public void onDocumentNotFound(String errorCode, String errorMessage) {
                                Helper.showToast(context, R.string.error);
                            }
                        });
                    }
                }).setView(v);
        builder.show();
    }
    private void setPriceFilter(View view, Query query) {
        String priceField = new DocumentFields(view.getContext()).getDevicePriceField();
        final CheckBox cbIncludeLower = ButterKnife.findById(view, R.id.cbIncludeLower);
        final CheckBox cbIncludeUpper = ButterKnife.findById(view, R.id.cbIncludeUpper);
        final EditText etLowerPrice = ButterKnife.findById(view, R.id.etPriceFrom);
        final EditText etUpperPrice = ButterKnife.findById(view, R.id.etPriceTo);
        if(cbIncludeLower.isChecked()) {
            query.greaterThenOrEqualTo(priceField, getPrice(etLowerPrice));
        } else {
            query.greaterThan(priceField, getPrice(etLowerPrice));
        }
        if(cbIncludeUpper.isChecked()) {
            query.lessThanOrEqualTo(priceField, getPrice(etUpperPrice));
        } else {
            query.lessThan(priceField, getPrice(etUpperPrice));
        }
    }
    private Double getPrice(EditText etPrice) {
        String price = etPrice.getText().toString();
        Double priceDouble = 0d;
        if(!price.isEmpty()) {
            priceDouble = Double.valueOf(price);
        }
        return priceDouble;
    }
    public interface CallbackFilterDialog {
        void onFilterApplied(List documentInfo);
    }
}

В методе showFilterDialog мы создаем AlertDialog и задаем ему View из следующего layout-файла:

 

Включаемые layout-файлы price_filter_layout и platform_filter показаны ниже:

Диалоговое окно фильтра показано на рисунке 2.4

Диалоговое окно фильтра

Рисунок 2.4 — диалоговое окно фильтра.

В данном диалоговом окне пользователь может задать условия выборки из БД по определенным критериям, а именно:

  • Цена устройства
  • Платформа устройства (Android или iOS, а так же номер версии ОС).
  • Доступные в наличии цвета.

При нажатии на кнопку «Продолжить» мы проверяем выбраны ли элементы CheckBox и если да — ставим соответствующий фильтр.

Листинг кода для задания фильтра:

public void showFilterDialog(final CallbackFilterDialog callbackFilterDialog) {
    final View v = LayoutInflater.from(context).inflate(R.layout.filter_layout, null);
    final CheckBox cbPriceFilter = ButterKnife.findById(v, R.id.cbPriceFilter);
    final CheckBox cbPlatformFilter = ButterKnife.findById(v, R.id.cbPlatformFilter);
    final CheckBox cbColourFilter = ButterKnife.findById(v, R.id.cbColorFilter);
    final EditText etPlatformFilter = ButterKnife.findById(v, R.id.etPlatformFilter);
    final EditText etColors = ButterKnife.findById(v, R.id.etColors);

    AlertDialog.Builder builder = new AlertDialog.Builder(context)
            .setTitle(R.string.titleChooseFilterProperties)
            .setPositiveButton(R.string.continue_action, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Query query = new Query(MainActivity.COLLECTION_NAME);
                    if (cbPriceFilter.isChecked()) {
                        setPriceFilter(v, query);
                    }

                    if (cbPlatformFilter.isChecked()) {
                        query.equalTo(new DocumentFields(context).getPlatformField(), etPlatformFilter.getText().toString());
                    }

                    if(cbColourFilter.isChecked()) {
                        List colors = new ArrayList();
                        colors.addAll(Arrays.asList(Helper.getStringFrom(etColors).split(",")));
                        query.containedIn(new DocumentFields(context).getColorsAvailableField(), colors);
                    }
                    query.findDocuments(new CallbackFindDocument() {
                        @Override
                        public void onDocumentFound(List documentInfos) {
                             callbackFilterDialog.onFilterApplied(documentInfos);
                        }
                        @Override
                        public void onDocumentNotFound(String errorCode, String errorMessage) {
                            Helper.showToast(context, R.string.error);
                        }
                    });
                }
            }).setView(v);
    builder.show();
}

private void setPriceFilter(View view, Query query) {
    String priceField = new DocumentFields(view.getContext()).getDevicePriceField();
    final CheckBox cbIncludeLower = ButterKnife.findById(view, R.id.cbIncludeLower);
    final CheckBox cbIncludeUpper = ButterKnife.findById(view, R.id.cbIncludeUpper);
    final EditText etLowerPrice = ButterKnife.findById(view, R.id.etPriceFrom);
    final EditText etUpperPrice = ButterKnife.findById(view, R.id.etPriceTo);
    if(cbIncludeLower.isChecked()) {
        query.greaterThenOrEqualTo(priceField, getPrice(etLowerPrice));
    } else {
        query.greaterThan(priceField, getPrice(etLowerPrice));
    }
    if(cbIncludeUpper.isChecked()) {
        query.lessThanOrEqualTo(priceField, getPrice(etUpperPrice));
    } else {
        query.lessThan(priceField, getPrice(etUpperPrice));
    }
}

Фильтр задается следующим образом: мы создаем объект Query, выборку мы ведем из нашей коллекции. Далее: если выбран фильтр цены (установлена соответствующая галочка), то мы выбираем из БД только устройства для которых цена попадает в пределы указанных границ.

Границы цен задаются при помощи следующих методов:

  • greaterThan задает нижнюю границу цены (не включая указанную цену).
  • lessThan задает верхнюю границу цены (не включая указанную цену).
  • greaterThanOrEqualTo задает нижнюю границу цены включая указанную цену.
  • lessThanOrEqualTo задает верхнюю границу цены включая указанную цену.

Поиск по платформе задается при помощи метода equalTo(field, value) класса Query который указывает экземпляру данного класса оставить в выборке только документы у которых значение поля указанного в параметре field совпадает с value. В нашем случае мы можем например найти все Android 7.0 девайсы, указав query.equalTo(«platform», «Android 7.0»);

Поиск по доступным цветам задается при помощи метода containedIn класса Query который оставляет в выборке только те документы для которых поле (типа массив) содержит все элементы заданного массива.

Таким образом мы формируем запрос (query) для указанной коллекции БД и получаем экземпляры класса DocumentInfo характеризующие документы, удовлетворяющие данному запросу. Эту информацию мы передаем в активность при помощи callback и обновляем информацию.

При нажатии на кнопку Закончить активную сессию пользователя происходит завершение активной сессии пользователя (logout) и пользователь попадает обратно на стартовый экран приложения.

Для осуществления данной функциональности нужно задать обработчик нажатия для данной кнопки, вызывающий метод logout класса User для завершения активной сессии пользователя:

public static void logout(final Context context) {
    LocalPersistence.writeObjectToFile(context, null, LocalPersistence.FILE_USER_INFO);
    new User().logout(new CallbackLogoutUser() {
        @Override
        public void onLogoutSucceed() {
            display(context);
        }

        @Override
        public void onLogoutFailed(String errorCode, String errorMessage) {
            Helper.showToast(context, R.string.error);
        }
    });
}
logout(…)User

В случае успешного завершения активной сессии пользователя будет вызван метод onLogoutSucceed(...) callback интерфейса, иначе будет вызван метод onLogoutFailed(...).

Экран подробной информации о устройстве.

При нажатии на любой из элементов списка устройств главного экрана приложения пользователь попадает на экран подробной информации об устройстве.

Создадим активность с именем ItemDetailsInfo и в layout-файл данной активности добавим следующий xml код:

Как видно layout-файл активности переиспользует xml код экрана добавления элемента в БД, но на данном экране так же присутствует возможность перейти в режим редактирования, т.е актививровать скрытые View экрана.

В ActionBar данного экрана так же добавим иконки для редактирования записи об устройстве (документа), удаления записи об устройстве (документа) и перехода на экран информации об отгрузке.

Для задания иконок в ActionBar создадим layout-файл с именем detailed_info_menu и добавим в него следующий код:



В самой активности добавим метод:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.detailed_info_menu, menu);
    return super.onCreateOptionsMenu(menu);
}

который установит иконки в ActionBar.

Обрабатывать нажатие на иконки мы будем при помощи метода указанного ниже:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            break;
        case R.id.action_edit_item:
            setEditMode(true);
            break;
        case R.id.action_remove_item:
            DocumentHelper.fetchAndRemoveDocument(this, document, getDocumentInfo());
            break;
        case R.id.action_prepare_item:
            SendItemActivity.display(this, getDocumentInfo());
            break;
    }
    return super.onOptionsItemSelected(item);
}

В результате получим экран показанный на рисунке 3.1

экран подробной информации об устройстве

Рисунок 3.1 — экран подробной информации об устройстве.

В верхней правой части экрана присутствуют следующие иконки:

Редактировать информацию о устройстве Редактировать информацию о устройстве

Удалить данное устройство из БД Удалить данное устройство из БД

Перейти к информации об отгрузке данного товара. Перейти к информации об отгрузке данного товара.

При нажатии на кнопку Редактировать информацию о устройстве экран переключается в режим редактирования. Для этого сделаем видимыми кнопки «Добавить цвет», «Удалить цвет», «Увеличить цену на складе», «Уменьшить цену на складе». Экран подробной информации о устройстве в режиме редактирования показан на рисунке 3.2

Экран подробной информации об устройстве в режиме редактирования

Рисунок 3.2 — Экран подробной информации об устройстве в режиме редактирования

Зададим обработчик нажатия кнопки «Изменить запись», который будет вызывать следующий метод:

private void updateItemDocument() {
    document.getDocumentById(getDocumentInfo().getId(), new CallbackGetDocumentById() {
        @Override
        public void onDocumentFound(DocumentInfo documentInfo) {
            document.updateDocument()
                    .set(fields.getDeviceNameField(), getStringFrom(etDeviceName))
                    .set(fields.getPlatformField(), getStringFrom(etDevicePlatform))
                    .set(fields.getCameraInfoField(), getStringFrom(etDeviceCameraInfo));
            setColorsUpdateInfo();
            document.updateDocument().inc(fields.getDevicePriceField(), increaseCount);
            document.saveDocument(new CallbackDocumentSaved() {
                @Override
                public void onDocumentSaved() {
                    setEditMode(false);
                    for (String color : deviceColors.keySet()) {
                        deviceColors.put(color, ColorState.FROM_DB);
                    }
                    document.updateDocument().getUpdateInfo().clear();
                }
                @Override
                public void onDocumentSaveFailed(String errorCode, String errorMessage) {
                    showToast(R.string.error_update_item);
                    setFields();
                }
            });
        }
        @Override
        public void onDocumentNotFound(String errorCode, String errorMessage) {
            showToast(R.string.error_update_item);
            setFields();
        }
    });
}
private void setColorsUpdateInfo() {
    for (String color : deviceColors.keySet()) {
        ColorState colorState = deviceColors.get(color);
        switch (colorState) {
            case TO_REMOVE:
                document.updateDocument().pull(fields.getColorsAvailableField(), color);
                break;

            case NEW:
                document.updateDocument().push(fields.getColorsAvailableField(), color);
                break;
        }
    }
}

Для обновления информации об устройстве используется метод updateDocument() класса Document. При этом экземпляр класса Document обновление которого мы проводим должен быть ассоциирован с реальным документом из БД при помощи метода getDocumentById. При этом новые значения следующих полей:

  • Название устройства (поле deviceName в БД)
  • ОС устройства (поле platform в БД)
  • Информация о камере (deviceCameraInfo)

задаются при помощи метода set(field, value) класса Update.

Поле «цена устройства» (поле devicePrice в БД) задается при помощи метода .inc(field, value) класса Update. При этом если мы увеличиваем цену, то используем в положительные значения параметра value, если уменьшаем, то отрицательную.

Поле «доступные цвета» (поле colorsAvailable в БД) задается при помощи методов .push() (для добавления цвета устройства) и .pull() (для удаления цвета устройства).

Рассмотрим еще раз работу метода updateItemDocument(...): для обновления полей документа нам нужно удостовериться, что такой документ существует и ассоциировать наш экземпляр класса Document с документом в БД. Для этого мы используем метод .getDocumentById(…) класса Document. После того как мы ассоциировали наш документ с документом из БД мы получаем объект класса Update при помощи метода .updateDocument(). Далее используя объект класса Update мы задаем название, платформу и информацию о камере устройства при помощи метода .set(…), добавляем в массив (при помощи метода .push()) или удаляем из массива (при помощи метода .pull) доступные цвета для данного устройства и изменяем цену (при помощи метода .inc()) в поле цены. После задания всех необходимых изменений в экземпляре класса Update мы производим сохранение документа при помощи метода .saveDocument(…) класса Document.

Поскольку документ получен путем ассоциации с документом из БД (при помощи метода .getDocumentById), то в результате выполнения .saveDocument(…) произойдет обновление документа, а не создание нового документа.

Рассмотрим действие кнопки Удалить данное устройство из БД - при нажатии на данную кнопку происходит удаление информации об устройстве из БД. Для этого добавим обработчик нажатия данной кнопки вызывающий метод показанный ниже:

public static void fetchAndRemoveDocument(final Context context, final Document document, DocumentInfo documentInfo) {
    document.getDocumentById(documentInfo.getId(), new CallbackGetDocumentById() {
        @Override
        public void onDocumentFound(DocumentInfo documentInfo) {
            removeDocument(context, document);
        }
        @Override
        public void onDocumentNotFound(String errorCode, String errorMessage) {
            Helper.showToast(context, R.string.error_document_not_removed);
        }
    });
}
public static void removeDocument(final Context context, Document document) {
        document.removeDocument(new CallbackRemoveDocument() {
            @Override
            public void onRemoveSucceed(ResponseRemove responseRemove) {
                Toast.makeText(context, context.getString(R.string.document_removed), Toast.LENGTH_SHORT).show();
                ((Activity) context).finish();
            }
            @Override
            public void onRemoveFailed(String errorCode, String errorMessage) {
                Toast.makeText(context, context.getString(R.string.error_document_not_removed), Toast.LENGTH_SHORT).show();
            }
        });
}

Рассмотрим данный метод подробней: Сначала мы используем метод .getDocumentById(...) класса Document для того чтобы удостовериться, что такой документ существует и провести ассоциацию данного документа с созданным нами экземпляром класса Document.

После того как мы удостоверились в наличии данного документа мы вызываем метод .removeDocument() класса Document который удаляет документ из БД.

Рассмотрим действие кнопки Перейти к информации об отгрузке данного товара.. При нажатии на эту кнопку мы переходим к экрану с информацией об отгрузке товара.

Как уменьшить значки на экране самсунг галакси

Привет! Сегодня я покажу вам как уменьшить значки на экране самсунг галакси. Вы можете очень просто и быстро уменьшить размер значков на дисплеи смартфона samsung galaxy. Для чего уменьшать ярлыки? Например, чтобы больше значков влезло на экран или чтобы больше пустого пространства было и т.д. Смотрите инструкцию далее и пишите комментарии, если у вас есть вопросы. Поехали!)

На главном экране найдите кнопку Настройки и нажмите на неё.

Далее, в настройках нажмите на вкладку Дисплей.

Далее, нажмите здесь на вкладку Главный экран.

Смотрите, здесь у вас будет два параметра:

  • Сетка главного экрана;
  • Сетка экрана приложений.

Чтобы уменьшить значки на главном экране, вам нужно выбрать сетку 5х5 и нажать вверху на вкладку Применить. Вы сможете размещать на экране по ширине до 5 значков.

Тоже самое можно сделать для экрана приложений.

Всё готово. Значки станут меньше, вы сможете больше значков добавлять, будет больше свободного пространства.

&n

3 способа уменьшить значки на экране самсунг а50

Вас не устраивает удобство самсунг а50 2019 — тогда значки на телефоне можно поменять: уменьшить или увеличить.

В любом случае, вам даже не нужно иметь правильное сочетание экрана и разрешения — у каждого свой вкус, а некоторые просто хотели бы иметь маленькие иконки.


Для этого производитель в вашем случае компания самсунг предусмотрел это и встроил свой инструмент.

Также размер значков можно изменить, установив соответствующий модуль запуска, отвечающий за отображение главного экрана, сетки значков с приложениями, виджетов и других элементов.

Первый способ уменьшить значки на экране самсунг а50 – встроенными средствами

Вам нравится адаптировать внешний вид своих вещей к собственным эстетическим вкусам. В случае мобильного оборудования ситуация ничем не отличается, о чем свидетельствует богатый рынок аксессуаров для смартфонов.

Только на этот раз речь пойдет не об аксессуарах, а об изменении внешнего вида интерфейса вашего телефона самсунг галакси а50.


Чтобы значки уменьшить на любом месте экрана, где иконок нет задерживаем на секунду-две палец – до появления параметров.

Затем нажимаем с правой стороны на иконку шестеренка (настройка) – именно она отвечает за сетку, а сетка за размер значков.

Теперь смотрим какие хотим уменьшить – на главном экране или в меню, где отображаются все. Выбираем нужный нам пункт и изменяем сетку.

Чем больше сетка, тем будут значки меньше. Самый меньший размер – сетка 5х6. После выбора подтверждаем, кликнув на кнопку «Применить». Вот так легко можете их изменить.

Второй способ сделать меньше значки на экране samsung а50 2019 – KitKat Launcher

Приложение KitKat Launcher – имеет много функций персонализации, включая возможность ручного выбора размера значков.

Просто зайдите в настройки (держите палец в пустом месте), введите общие параметры и найдите параметр размера значка.


Появится слайдер, который позволяет увеличить процент наших значков, как на главном экране самсунга а50 2019, так и меню со списком приложений.

Это очень хороший лаунчер с современным дизайном, который является отличной альтернативой для тех, кто любит маленькие иконки и хочет больше возможностей персонализации.

Третий способ поменять значки на самсунг а50 – Apex Launcher

Apex Launcher — одна из самых «доступных» пусковых установок — будет работать без проблем на самсунг а50.

Поэтому, это будет здорово. Apex Launcher имеет множество опций персонализации и настроек.


После первого запуска на появится значок «Настройки Apex», который является ярлыком для параметров и конфигурации.

С его вы легко и сможете внести дополнительные модификации, прежде всего, с точки зрения внешнего вида. Благодарю за чтение и буду рад комментарию. Успехов.