Недавно решил попробовать реализовать идею о том, как можно делиться местоположением через API ВКонтакте с друзьями в режиме, приближенном к реальному времени. На выходе получилось кроссплатформенное Qt-приложение для iOS/Android, веб-приложение для ВКонтакте и парочка pull request’ов для VK API. В этой статье я хотел бы поделиться некоторыми неочевидными моментами реализации, которые, может быть, будут кому-то интересны. Итак, заинтересовавшихся прошу под кат.
Зачем мне вообще это понадобилось
Рано или поздно дети взрослеют. Банальная истина. Вот и моя десятилетняя дочь в один прекрасный день заявила: “Папа, не вози меня больше на машине, я хочу ходить в школу самостоятельно!”. Ну что же, я счел требование справедливым, попросил двухнедельную отсрочку и начал подготовку.
Поскольку я имею некоторый опыт написания приложений, а дочь постоянно таскает в кармане iPhone SE, то в качестве подготовки было решено быстренько написать приложение, которое показывало бы, где дочь находится в данный конкретный момент. Да, я знаю, что сейчас таких приложений довольно много (даже в Google Maps недавно появился подобный функционал), и можно было использовать какое-то готовое решение, но мне было интересно написать что-то свое.
Как Поменять свой Город в ВК с Телефона / Как Изменить Город в ВКонтакте
Почему ВКонтакте?
Поскольку связываться с обработкой и хранением чужих (в потенциально возможной перспективе) персональных данных на своем оборудовании со всеми вытекающими из этого “прелестями” мне бы не хотелось, я задумался, как бы обойтись без собственной серверной части. И тут меня осенило – ведь есть же такой монстр, как ВКонтакте! Он модный, мощный и со своим развитым API, а главное – в нем давно и плотно сидят все наши дети (нельзя сказать, чтобы мне это нравилось, но это реальность). Но черт возьми, Холмс, как мне запихнуть в него данные о местоположении так, чтобы, во-первых, они не показывались там, где не надо, а во-вторых, чтобы можно было регулировать доступ к этим данным, дабы нехорошие педобиры до них не добрались?
На помощь пришли заметки. Да-да, те самые викифицированные заметки, которые некогда (по слухам) были очень популярны, а сейчас находятся в загоне, по большей части перестали отсвечивать в лентах и переехали в отдельный раздел сайта, в который на хромой козе не попадешь. В них можно размещать произвольные текстовые данные, но главное – им можно назначать списки доступа, в которых перечисляются люди и группы, которые могут эту заметку видеть и комментировать.
Общая схема работы приложения в моих глазах стала выглядеть следующим образом:
- Создаем список друзей, с которыми нужно поделиться данными о местоположении (я назвал его «Доверенные друзья»);
- Создаем заметку с определенным именем, даем права на ее просмотр вышеупомянутому списку, записываем туда данные о местоположении и периодически их обновляем;
- Регулярно пробегаемся по списку доверенных друзей, проверяя, не появилась ли и у них заметка с этим определенным именем, если появилась, то пытаемся извлечь из ее содержимого данные о местоположении друга, и, если это удалось, то показываем его на карте;
- .
- PROFIT!
iOS
Поскольку дочь пользуется iPhone, логично было начать реализацию с iOS-версии. С прицелом на кроссплатформенность в качестве фреймворка был выбран Qt, потому что я с ним довольно давно и хорошо знаком, а в качестве движка для карты был выбран старый добрый Open Street Map, для которого в Qt Location есть плагин. Так как приложение изначально создавалось как open source, лицензионные ограничения Qt меня не пугали.
Как Убрать или Добавить Геолокацию в Фото в Вконтакте
GUI был написан на QML, для работы с ВК я подключил и использовал штатный VK iOS SDK, он написан на Objective C, поэтому его интеграция никаких проблем не вызвала. Работа в фоновом режиме на iOS реализована через Significant Change Location Service. Для снижения энергопотребления приложение следит за активностью перемещений, и если понимает, что человек долго сидит примерно на одном месте (скажем, пришел в школу или в офис), то понижает требуемую точность определения геопозиции, вынуждая ОС переключиться на менее энергоемкие способы ее определения (как правило, по вышкам сотовой связи). Если же приложение понимает, что человек начал активно перемещаться, точность вновь поднимается.
Полный набор исходных текстов iOS-версии доступен на GitHub. Вот пара неочевидных моментов, с которыми я столкнулся в процессе реализации:
Переопределение методов NSApplicationDelegate в Qt-приложении
iOS SDK от ВКонтакте требует добавления вызовов некоторых своих функций в методах application:didFinishLaunchingWithOptions: и application:openURL:options:. До какой-то версии Qt (по-моему, до 5.11) достаточно было создать категорию для QIOSApplicationDelegate примерно таким образом:
Но в последних версиях Qt QIOSApplicationDelegate уже имеет реализацию application:openURL:options:, поэтому вариант с категориями уже не прокатывает. Пришлось сделать наследника от QIOSApplicationDelegate и назначать делегата через setDelegate:
Обработка ошибок от VKRequest
Столкнулся с тем, что VKRequest при ошибке возвращал незаполненный (пустой) NSError. Сделал патч, который патчит чей-то предыдущий патч и pull request этого патча, но он пока что висит в нерассмотренных.
Android
Следующей была версия под Android. Код GUI был переиспользован из iOS практически полностью, для взаимодействия с ВК был использован опять же штатный VK Android SDK, взаимодействие с которым происходит через JNI, работа в фоновом режиме реализована в соответствии с заветами Google для подобных приложений — а именно, через Foreground Service. Само собой, реализована и логика по снижению энергопотребления, аналогичная используемой в iOS.
Полный набор исходных текстов Android-версии доступен опять-таки на GitHub, а вот и пара неочевидных моментов, с которыми я столкнулся в процессе реализации этой версии:
Как создать Android сервис на Qt
Для создания сервиса в Qt 5.10 появился класс QAndroidService, который нужно использовать вместо QGuiApplication. Можно собрать отдельные .so для activity и для service, а можно использовать один .so на все, а для того, чтобы код понимал, в каком режиме он работает, можно указать этот режим через ключ командной строки, примерно так:
int main(int argc, char *argv[]) < if (argc == 1) < QGuiApplication app(argc, argv); [. ] >else if (argc == 2 QString(argv[1]) == «-service») < QAndroidService app(argc, argv); [. ] >else < return 0; >>
Странные «повисания» activity в onDestroy()
В процессе реализации сервиса выяснилась забавная проблема — QtActivity «висла» где-то в недрах своего onDestroy() при условии наличия работающего foreground service. По-видимому, Qt не ожидает, что после завершения activity от приложения может еще что-то оставаться. Проблема была решена разнесением activity и service по различным процессам через использование android:process в манифесте:
и прибиванием процесса, в котором работает activity, в переопределенном onDestroy():
Да, lint на это постоянно ругается, но как с этим справиться по-другому, для меня пока неочевидно, а запилить QTBUG с PoC на эту тему что-то руки пока не доходят.
UPDATE: в Qt 5.12.3 (возможно, и чуть раньше — не проверял) баг с повисанием QtActivity.onDestroy() при запущенном сервисе починили, этот workaround больше не нужен.
Отсутствие вызова errorBlock при отмене VKBatchRequest
Я широко использую batch request’ы для облегчения нагрузки на серверы ВКонтакте, и именно под Android (под iOS все работает нормально) столкнулся с проблемой — в случае отмены VKBatchRequest errorBlock’и для отмененных запросов не вызывались. Исправил эту проблему в локальной версии библиотеки, сделал соответствующий патч и pull request этого патча, но он опять же пока что висит в нерассмотренных.
iOS-версию Apple без проблем разместил в App Store, и она доступна там и по сей день, Android-версия прожила в Google Play некоторое время до момента ужесточения Google Play Policy (в ней прописали, что приложения, занимающиеся отслеживанием геопозиции, должны быть явно предназначены либо для семейного, либо для корпоративного использования), после чего мое приложение там благополучно заблокировали. На мою попытку апелляции ответственный сотрудник Google (а может, это и бот был, сейчас там уже не столь очевидно, кто именно отвечает на твои вопросы) непреклонно заявил, что «ну это приложение же МОЖЕТ БЫТЬ использовано НЕ ТОЛЬКО для семейного или корпоративного отслеживания», на что я не нашелся, что возразить — действительно, молотком ведь можно не только забивать гвозди, а еще и пробивать головы… Разместил Android-версию в Яндекс.Store и Amazon Appstore и в виде APK на сайте проекта.
Буду рад, если это приложение кому-то пригодится в качестве наглядного пособия для прояснения каких-то неочевидных моментов при написании Qt-приложения под iOS/Android, особенно связанных с реализацией Android-сервиса на Qt (функциональность эта относительно новая, примеров реализации, насколько я знаю, не так много). Также буду рад ответить на вопросы в комментариях, if any.
- Разработка под iOS
- Qt
- Разработка под Android
- ВКонтакте API
Источник: habr.com
Как настроить Геолокацию в контакте?
У нас есть 23 ответов на вопрос Как настроить Геолокацию в контакте? Скорее всего, этого будет достаточно, чтобы вы получили ответ на ваш вопрос.
Содержание
- Как скинуть координаты в ВК?
- Как транслировать свое местоположение?
- Как изменить местоположение в сообществе в ВК?
- Как указать местоположение в группе вконтакте?
- Как настроить Геолокацию в контакте? Ответы пользователей
- Как настроить Геолокацию в контакте? Видео-ответы
Отвечает Ник Расторгуев
Вы можете либо включить геопозицию в настройках, лтбо нажать на карту и выбрать своё местоположение вручную, увеличивая карту и перемещаясь по ней. Чтобы прикрепить геопозицию в полной версии сайта: Нажмите на вложения (кнопка слева). Нажмите на пункт «Карта» (рис.Jul 18, 2019
Чтобы включить или выключить геолокацию, выберите Местоположение. Чтобы найти сети поблизости, нажмите Дополнительно Поиск, а затем включите или отключите параметры Поиск сетей Wi‑Fiи Поиск Bluetooth-устройств.
Проведите по экрану сверху вниз. Нажмите на значок «Геолокация» и удерживайте его. Если значка «Геолокация» нет: Коснитесь значка «Изменить» или «Настройки» . Перетащите значок «Геолокация» на панель быстрых настроек. Выберите ДополнительноГеолокация в экстренных ситуациях. Включите или отключите эту функцию.
Совет.
Подробнее… Если функция «Определение местоположения» (или «Геолокация Google») включена, она может собирать сведения, которые нужны для улучшения работы сервисов, использующих данные о местоположении. Подробнее…
Чтобы повышать точность геолокации и улучшать сервисы, использующие данные о местоположении, Google может периодически собирать и обрабатывать анонимные геоданные пользователей. Если определение местоположения отключено
Как скинуть координаты в ВК?
Откройте приложение «Локатор», нажмите Люди — Поделиться геопозицией или Начать делиться геопозицией. После этого введите имя, номер телефона или почту человека, с которым хотите поделиться местоположением, и отправьте приглашение. После этого выберите время доступа.
Как транслировать свое местоположение?
Как передать геоданныеДобавьте его адрес электронной почты, привязанный к аккаунту, в Google Контакты.На устройстве Android откройте приложение «Google Карты» . Нажмите с вашим значком профиля Передача геоданных «Добавить пользователей» .Укажите период, в течение которого будет открыт доступ к вашим геоданным.
Как изменить местоположение в сообществе в ВК?
Адрес сообщества можно изменить в разделе Управление, в пункте Адрес сообщества. Сменить адрес профиля можно в аналогичном пункте настроек. Минимальная длина адреса составляет 5 символов, максимальная — 32. При выборе адреса можно увидеть ошибку Недопустимый формат.
Как указать местоположение в группе вконтакте?
Чтобы добавить или изменить адрес компании, заходим «Настройки — Адреса». Напротив поля «Адреса» ставим «Включены». И ставим галочку в поле «Показать карту», чтобы в группе отображалась карта с адресами и можно было посмотреть, где вы находитесь. Добавляем адреса, где находятся ваши офисы или представительства.
Как настроить Геолокацию в контакте? Ответы пользователей
Отвечает Дмитрий Берестов
Как это происходит? Да очень просто. Откройте фотографию, где вы хотите добавить геотег. В правой нижней части окна с изображением есть небольшое меню. Нажмите .
Отвечает Елена Бубенко
После того, как Вы выберете место и оставите текст, эта информация сразу же транслируется в Ваш статус ВКонтакте. Ваше местонахождение увидят .
Отвечает Владимир Савельев
Как сбросить настройку определения места / Как отключить геолокацию
Отвечает Анастасия Велс
Вы можете сделать это на айфоне, перейдя в Настройки -> Приватность -> Геолокация . На этой странице вы можете включить или выключить Геолокацию в том числе для .
Отвечает Янис Пиотровский
Статья о том, как указать место на фото В Контакте. Как указать место жительства в ВК?
Отвечает Римма Валеева
Геолокация по какой-либо причине оказалась включена для приложения, но как она утекла — оставалось загадкой. Знаете, где в ВК можно увидеть .
Отвечает Вячеслав Менцев
Как ВКонтаке может делиться вашей геолокацией. Инструкция по отключению геоданных VK. Как отключить геолокацию в ВК.
Отвечает Яна Смирнова
Как вк ставить геолокацию. Как создать новое местоположение в Инстаграм: через Android и Ios. Очень удобно, когда при публикации фотографии в Instagram .
Отвечает Злата Мирошкина
Геометка в таргетинге VK – метка на карте, которая отмечает необходимое вам заведение, место и прилегающий радиус от 0.5 до 40 км. Рекламные алгоритмы ВКонтакте .
Как настроить Геолокацию в контакте? Видео-ответы
Как ВКонтакте отметить геолокацию в постах с телефона
Также на моём канале вы найдёте короткие видео-уроки по другим соцсетям! Полные базы знаний в социальных сетях: .

Как настроить адрес и карту в группе ВКонтакте | Как оформить сообщество ВКонтакте
Как настроить адрес и карту в группе ВКонтакте (ссылки и тайм-коды внизу). Тайминг: 00:00 — начало 00:09 — о чем это .

Настройка рекламы по ГЕО локации ВКонтакте. Как настроить таргет
targethunter.ru — промокод Сова 2 дня бесплатного доступа + 2-й месяц в подарок при покупке любого тарифа.

Как Убрать или Добавить Геолокацию в Фото в Вконтакте
В этом видео я покажу как можно убрать или установить местоположение на фотографии в ВК. Не стоит всегда верить .
Источник: querybase.ru
Как изменить своё местоположение на Android и iOS
Социальные сети, онлайн-карты, фотохостинги и другие сервисы отслеживают ваши координаты и нередко без спроса делают эту информацию доступной для других. Но вы можете передавать им ложное местонахождение. Например, чтобы сохранять анонимность или просто разыгрывать друзей.
Как изменить местоположение на Android
Замаскировать свою реальную геопозицию можно с помощью приложения Hola Fake GPS location. После первого
запуска придётся потратить несколько минут, чтобы сделать необходимые настройки. Но в дальнейшем вы сможете почти мгновенно менять координаты в простом и удобном интерфейсе.
После установки Hola Fake GPS location вы должны дать программе разрешение на смену геопозиции. Для этого сначала нажмите в приложении GO, а потом Settings — откроется раздел «Для разработчиков». Затем найдите пункт «Выбрать приложения для фиктивных местоположений» и выберите с его помощью Hola Fake GPS location.
Далее, перейдите в настройки аппарата и откройте раздел, отвечающий за параметры местоположения. Здесь включите режим определения геопозиции только по спутникам GPS.
Когда внесёте указанные выше настройки, приложение будет готово к работе. Чтобы поменять с его помощью координаты для всех остальных программ, достаточно выбрать ложное местоположение на карте и нажать на кнопку GO. Вы можете выбирать любые локации по всему миру. Чтобы отключить подмену координат, нужно нажать на STOP.
Передача ложного местоположения работает в фоновом режиме. Включив Hola Fake GPS location, вы сможете как обычно делиться координатами в социальных сетях и делать новые снимки в остальных программах. Но теперь другие пользователи будут видеть не вашу фактическую локацию и не места, в которых вы делали фото, а выбранные координаты.
Управлять работой Hola Fake GPS location можно также с помощью специального виджета, который появляется после установки программы на панели уведомлений.
После выключения Hola остальные приложения могут по-прежнему видеть фиктивные координаты. В таких случаях просто перезапускайте модуль GPS.
Приложение Hola Fake GPS location доступно по оплачиваемой подписке либо полностью бесплатно. Но во втором случае программа будет использовать вычислительную мощность вашего устройства во время его простоя и немного трафика.
appbox fallback https://play.google.com/store/apps/details?id=org.hola.gpslocationhl=ruhttps://lifehacker.ru/kak-izmenit-svojo-mestopolozhenie-dlya-lyubogo-prilozheniya-android/» target=»_blank»]lifehacker.ru[/mask_link]