Samsung location sdk что это
Перейти к содержимому

Samsung location sdk что это

  • автор:

Samsung location sdk что это за программа и нужна ли она

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

  1. Бывает ли у кошек аллергия на людей?
  2. В честь кого были названы конфеты Mhttps://vamber.ru/question/samsung-location-sdk-chto-eto/» target=»_blank»]vamber.ru[/mask_link]

SDK тебе, SDK мне, SDK всем! Как делать SDK и зачем это нужно

Наша компания делает сервис для хранения и обработки данных с промышленных устройств (насосы, буры и прочая промышленная техника). Мы храним данные наших клиентов и предоставляем функционал для их анализа: построение отчетов, графиков и еще много чего.

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

Как снять региональное ограничение Samsung. Разблокировка телефона с Computeruniverse

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

Но именно отсутствие информации на данную тему породило желание рассказать сообществу о размышлениях, принятых решениях и выводах на тему разработки SDK. В статье рассматривается решение для .NET, но речь идет о концепции, так что будет интересно многим. Подробности под катом!

Пора определяться

Начнем с того, что определим, что такое SDK и зачем он может быть нужен.

SDK (от англ. software development kit) — комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ. SDK использует преимущества каждой платформы и сокращает время на интеграцию.

Инженер-программист обычно получает SDK от разработчика целевой системы.

Что ж, логично. Простыми словами, SDK — это пакет библиотек, для того, чтобы клиент мог легко и быстро начать работать с вашей системой (в данной статье речь пойдет про наш сервис, но всё изложенное в статье применимо и к другим видам SDK) или выполнять однотипные действия.

Но, как и у любого подхода, у «Пути SDK» есть как преимущества, так и недостатки.

Samsung лизинг №2 ВНИМАНИЕ СКУПКИ, ЛОМБАРДЫ, МАСТЕРА, ЛЮДИ не ошибитесь! Новая проблема!

Преимущества

Высокая скорость интеграции нового клиента — вашим клиентам нужно писать меньше кода.

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

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

Качество кода — много где любят экономить на тестировании (жалко бюджета, горят сроки и прочие причины). Понятно, что в реальном мире покрыть тестами все участки проекта это учень трудоемкая задача. Но качественно протестировать все модули SDK, а затем использовать их — это путь повышения процента покрытия тестами, что приведет вас к снижению количества ошибок.

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

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

Недостатки

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

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

Dependency hell и обновления — при расширении функционала (например, кастомизации решения под конкретного клиента), вы выпустите новую версию библиотеки. Но существуют зависимости, различные наборы версий библиотек у разных клиентов, и нужно очень тщательно следить за обратной совместимостью или строгим версионированием.

Когда SDK действительно нужен

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

Внутренние разработки — в разных проектах вы используете системы логирования, конфигурирования систем, работу с HttpRequest, БД, файлами? Выработайте внутренний SDK — набор библиотек для внутреннего использования. Вы в любой момент можете расширить функционал SDK, но скорость разработки новых проектов, процент покрытия тестами и документацией вырастет, а порог вхождения новых разработчиков снизится.

Когда SDK скорее всего будет лишним

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

Вы не умеете делать качественно — у меня для вас плохая новость: пора учиться. Но отдавать кривое решение клиенту это очень, очень неправильно. Клиентов надо уважать, в конце концов.

Итак, мы определились, что такое SDK, с его преимуществами и недостатками и когда он нам нужен. Если после этого вы поняли, что SDK действительно нужен — приглашаю вас встать на «путь SDK» и разобраться, а каким он должен быть и как его, черт подери, делать?

«А вы любите Lego?» — Модульность

Представим все возможные сценарии использования SDK (вы же уже определились, зачем он вам нужен, правда?) и сделаем по библиотеке на сценарий. Чем не выход? Но это плохой подход, и так мы делать не будем. А будем так:

  • разобьем все сценарии на шаги
  • выявим общие шаги
  • построим список модулей, реализующих все возможные шаги (один модуль отвечает за реализацию чего-то конкретного, например, работы с конфигурациями)

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

А для реализации стандартных сценариев мы действительно сделаем модули — этакие «управляющие» модули, каждый из которых реализуют один конкретный сценарий, используя другие модули того же SDK. Таким образом для реализации стандартных сценариев клиент должен лишь подключить управляющий модуль сценария (а он сам подтянет все зависимости), а для реализации нестандартных — используем базовые модули, так же переиспользуя код.

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

Но не стоить плодить модули как попало, ведь чем больше модулей, тем больше головной боли от их зависимостей! Т.е. важно правильно разбить логику на модули, соблюдая баланс между решением «все в одном» и «на каждую функцию свой модуль».

«А что, так можно было?!» — Универсальность

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

public void LoadConfiguration(string filename); public async Task LoadConfigurationAsync(string filename);

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

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

class BaseConfiguration < public BaseConfiguration FromString(string source)public BaseConfiguration FromString(string source,Type configurationType) public T FromString(string source) where T:BaseConfiguration > class CustomConfiguration : BaseConfiguration<>

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

«Родитель 1, Родитель 2, Дети[ ]» — Именование

Что самое трудное в работе программиста? Выдумывать имена для переменных.

И тем не менее… Правильное именование модулей, классов, свойств и методов сильно помогут тем, кто будут с вашим SDK работать. Пример, не требующих комментариев:

Kinect 2.0 SDK example

var skeletons = new Skeleton[0]; using (var skeletonFrame = e.OpenSkeletonFrame()) < if (skeletonFrame != null) < skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength]; skeletonFrame.CopySkeletonDataTo(skeletons); >> if (skeletons.Length == 0) < return; >var skel = skeletons.FirstOrDefault(x => x.TrackingState == SkeletonTrackingState.Tracked); if (skel == null) < return; >var rightHand = skel.Joints[JointType.WristRight]; XValueRight.Text = rightHand.Position.X.ToString(CultureInfo.InvariantCulture); YValueRight.Text = rightHand.Position.Y.ToString(CultureInfo.InvariantCulture); ZValueRight.Text = rightHand.Position.Z.ToString(CultureInfo.InvariantCulture);

Всё ясно из названий классов и методов. А если есть автодополнение кода в вашей IDE, то зачастую можно и в документацию не заглядывать, если и так все понятно.

«Уверен, если бы Смерть знала, что такое бюрократия, люди бы никогда не умирали, вечно стоя в очереди. » — Документация

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

Документация, в SDK, как правило, проста и лаконична. Она обычно делится на две части: Tutorial — пошаговый курс в стиле “Построим город за 10 минут” и раздел Reference — справочник по всему, что можно сделать с помощью данного SDK.

Мы выбрали самый простой путь — summary + articles. Мы добавляем Xml атрибуты для методов и классов, которые светятся в intellisense как подсказки. Используя Docfx мы строим документацию по этим атрибутам и получаем подробную и удобную документацию, которую дополняет статьями, описывающими сценарии использования и примеры.

«— Чтобы чисто было! — Как я буду вилкой-то чистить?» — Тестирование

Что можно сказать про тестирование в рамках обсуждения SDK… Must have! Лучшим решением будет TDD (несмотря на то, что я негативно отношусь к данному подходу, в данном случае я решил использовать именно его). Да, долго. Да, нудно. Но зато в будущем вы не повеситесь от постоянных падений SDK на стороне и следствий этого падения.

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

Так, что-то я увлекся, но важность тестирования SDK, надеюсь, понятна.

«Жертва, которая не могла противостоять своему прошлому, была поглощена им» — Логи

Поскольку вы отдаете SDK сторонней компании, в следствие чего теряете контроль над ситуацией, в случае ошибки (на этапе тестирования вы все-так решили «и так сойдёт», да?) вас ждет достаточно долгий и болезненный процесс поиск этой самой ошибки. Именно тут вам на помощь придут логи.

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

«Alarm! Achtung! Attention!» — Ошибки

Долго размышляя на тему ошибок я пришел к интересному выводу — ни один метод в вашем SDK не должен отдавать ошибку, не описанную в документации. Согласитесь, очень неприятно, когда вы подключаете стороннюю библиотеку для работы с HttpRequest, а она вываливает на вас какой-нибудь NullPointerException и StackTrace, который уводит в недра библиотеки. И вам приходиться погружаться в эти самые «недра», пытаясь понять, насколько глубока кроличья нора, и в чем, собственно, проблема.

Поэтому я предлагаю следующее решение — декларируйте закрытый список возможных исключений и документируйте их. Но, т.к. нельзя быть увереннным, что вы предусмотрели все, оберните метод в try-catch, а пойманную ошибку — в задекларируему. Например, ConfigurationException, который будет содержать InnerException — пойманную ошибку. Это позволит стороннему разработчику поймать все возможные ошибки, но в случае чего быстро разобраться в чем дело.

Версии или «как не укусить себя за хвост»

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

«Паровозик, который смог» — Deploy

Необходимость актуальности документации и версий порождают требование к корректности деплоя. В своем решении мы используем следующее решение (костыли, но работают).
Когда надо выпустить нвый релиз, разработчик дергает bat’ник с указанием номера релиза, а затем батник:

  • билдит релиз
  • кладет все библиотеки в архив
  • билдит свежую версию документации (docfx)
  • указывает версию релиза в документации и в названии архива
  • кладет всё самое свеженькое в гит-репозиторий
  • WebApp на MS Azure подтягивает свежий коммит по гит хуку и публикует изменения

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

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

Samsung location sdk что это

Samsung SM-A720F Galaxy A7 (2017) — Неофициальные прошивки
ИзображениеSM-A720F
Описание | Обсуждение » | FAQ » | Аксессуары » | Покупка » | Брак и ремонт » | Клуб владельцев устройства » | Модемы и связь » | Энергопотребление (автономность) » | Модификации и украшательства » | Официальные прошивки » | Неофициальные прошивки »

Обновление июльского патча A720FXXU4CRG2 обновило загрузчик и модем, что означает, что если вы установите его, вы никогда не сможете вернуться к нуге!

    [ROM][A7 2017][A720F] Cool v1 на XDA
    ELITE ROM A720x
    Revolution OS v5.0.1 Final Version A7+2017 By Zonik GhaithCraft
    Experience Nougat ROM на XDA
    Stock Mod ROM
    FRESH ROM for A720F/DS
    DEODEX_XXU3BRB6
    Murat Rom

Прикрепленное изображение

В теме нет куратора. Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку, создав новую тему в разделе Хочу стать Куратором (предварительно изучив Правила и рекомендации для Кураторов).
До назначения куратора, по вопросам наполнения шапки, обращайтесь к модераторам раздела через кнопку под сообщениями, на которые необходимо добавить ссылки.

Сообщение отредактировал brant34 — 12.05.23, 13:55

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Скачать архив : Root.zip ( 34.34 МБ )

P.S. Папку Root и ее содержимое сохраняем на ББ для дальнейших модификаций.

Устанавливаем Root доступ с помощью TWRP. Андроид 6.0.1
В настройках девайса выполняем пункты, как и в первом варианте, после установки TWRP рекавери копируем файл UPDATE-SuperSU-v2.79-20161211114519.zip из архива Root.zip на внешнюю SD карту, загружаемся в TWRP рекавери. НЕ ДЕЛАЕМ СВАЙП. То есть нажимаем кнопку «только для чтения» или «keep read only» вместо того чтобы свайпом подтвердить внесение изменений. Выбираем установку и устанавливаем наш заранее приготовленный SuperSu. Перезагружаемся в систему.

Устанавливаем Root доступ с помощью CF-Auto-Root .
Скорее всего самый надежный и простой.
В настройках девайса выполняем пункты, как и в первом варианте, установку выполняем так же с помощью Odin архив CF-Auto-Root-a7y17lte-a7y17ltexx-sma720f.tar.md5, ждем перезагрузки девайса, рут получен.

Сообщение отредактировал sagitt67 — 11.07.17, 11:51

В выходные пробовал, согласно инструкции, рутануть при помощи TWRP (просто эксперимент, получение рут-прав через батник пройденный этап). Ничего у меня не получилось. Пробовал на обеих прошивках (APLI SER и AQC5 SER).
На ХДА обнаружил ссылку на утуб, где парень предложил альтернативный способ получения рут-доступа. Причем версия прошивки не категорична.

В итоге, на AQC5 было произведено рутование, аж 2 раза 😀 (ну, так получилось).
1. Через Odin 3.10.7, в строке АР прошиваем CWM. Прежде чем «стартовать», снимите галку с вкладки авто-ребут. (обязательное условие)
2. После прошивки CWM девайс останется висеть в режиме даунлоад. Кнопками (Питание+Домой+Громкость —) перезагружаем устройство, но как только экран погаснет, переводим палец удерживающий Громкость — на кнопку Громкость +.
3. Клавишами громкости, либо наэкранными,а хотите -пальцем :moil: перемещаемся по меню и выбираем install zip update/choose zip from sdcard.
Вот здесь необходимо отступить на пару шагов назад. Дело в том что, установленный CWM не видит внутреннюю память, но прекрасно справляется с
внешней картой. Поэтому, заранее кидаем архив BETA-SuperSU-v2.71-20160331103524.zip на карточку внешнюю.

Ну, вообщем-то и все.
Посредством данного рекавери устанавливается Xposed и прочие плюшки, проверено. Все необходимое находится в прикрепленном архиве
CWM for SAM 2017.rar ( 12.66 МБ )

Samsung location sdk что это

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

Примеры кода

Хранилище ApiDemos на сайте GitHub содержит пример, который демонстрирует использование данных о местоположении на карте.

Java

    : использование слоя «Мое местоположение», включая динамические разрешения. : использование собственного источника LocationSource . : определение текущего местоположения устройства Android и показ сведений об организации или другом объекте, который там находится. О том, как показывать на карте сведения о месте, читайте в нашем руководстве.

Kotlin

    : использование слоя «Мое местоположение», включая динамические разрешения. : использование собственного источника LocationSource . : определение текущего местоположения устройства Android и показ сведений об организации или другом объекте, который там находится. О том, как показывать на карте сведения о месте, читайте в нашем руководстве.

Работа с данными о местоположении

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

  • Слой Мое местоположение представляет собой простой способ отобразить местонахождение устройства на карте. Он не возвращает никаких данных.
  • Для всех программных запросов данных о местоположении рекомендуется использовать Location API сервисов Google Play.
  • Интерфейс LocationSource позволяет использовать собственный источник данных о местоположении.

Доступ к данным о местоположении

Если приложению требуются данные о местоположении пользователя, то вы должны добавить в приложение запрос соответствующего разрешения.

В Android предусмотрено два разрешения на использование геоданных: ACCESS_COARSE_LOCATION и ACCESS_FINE_LOCATION . От вашего выбора зависит, насколько точную информацию будет предоставлять API.

    – Позволяет API возвращать приблизительные данные о местоположении. Разрешение дает приложению доступ к примерному местоположению устройства, как описано в документации о точности приблизительного местоположения. позволяет API максимально точно определять местоположение на основании информации от поставщиков геоданных (GPS, сети Wi-Fi и мобильных сетей).

Добавление разрешений в манифест приложения

Если вашему приложению для работы требуются только примерные данные о местоположении, добавьте в манифест приложения разрешение ACCESS_COARSE_LOCATION :

Если же требуются точные данные о местоположении, добавьте в файл манифеста оба разрешения, ACCESS_COARSE_LOCATION и ACCESS_FINE_LOCATION :

Запрос динамических разрешений

В Android 6.0 (Marshmallow) представлена новая модель работы с разрешениями, которая оптимизирует процесс установки и обновления приложений пользователями. Если ваше приложение предназначено для API уровня 23 или более позднего, вы можете использовать новую модель разрешений.

Если приложение поддерживает новую модель разрешений, а на устройстве используется Android 6.0 (Marshmallow) или более новая версия, пользователю не нужно предоставлять какие-либо разрешения при установке приложения или его обновлении. Приложение должно проверить, есть ли у него требуемое разрешение, во время выполнения и при необходимости отправить запрос. Пользователь увидит диалоговое окно с просьбой предоставить соответствующее разрешение.

Чтобы обеспечить удобство для пользователя, важно запрашивать доступ в контексте. Если эта информация необходима для работы приложения, запрашивайте разрешение при запуске. Для этого рекомендуется использовать экран приветствия или мастер с объяснением причины запроса.

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

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

В следующем примере кода проверка разрешения выполняется с использованием библиотеки AndroidX до включения слоя «Мое местоположение»: Затем результат запроса разрешения обрабатывается путем реализации метода ActivityCompat.OnRequestPermissionsResultCallback из библиотеки поддержки.

Kotlin

Слой «Мое местоположение»

Слой «Мое местоположение» и одноименная кнопка позволяют пользователям видеть свое актуальное местоположение на карте. Чтобы включить слой «Мое местоположение», вызовите метод mMap.setMyLocationEnabled() .

Простой пример использования слоя «Мое местоположение»:

Kotlin

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

На скриншоте ниже вы можете увидеть кнопку «Мое местоположение» справа вверху и синюю точку в центре карты.

Чтобы предотвратить показ кнопки «Мое местоположение», вызовите UiSettings.setMyLocationButtonEnabled(false) .

Ваше приложение может реагировать на следующие события:

  • Если пользователь нажимает кнопку «Мое местоположение», ваше приложение получает обратный вызов onMyLocationButtonClick() от прослушивателя GoogleMap.OnMyLocationButtonClickListener .
  • Если пользователь нажимает на синюю точку «Мое местоположение», ваше приложение получает обратный вызов onMyLocationClick() от прослушивателя GoogleMap.OnMyLocationClickListener .

Location API сервисов Google Play

Данные о местоположении в приложениях для Android лучше всего обрабатывать с помощью Location API сервисов Google Play. Он позволяет выполнять следующие задачи:

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

Location API упрощает создание приложений, работающих с данными о текущем местоположении пользователя и эффективно расходующих заряд аккумулятора. Как и Maps SDK for Android, Location API распространяется как часть SDK сервисов Google Play. Дополнительную информацию вы можете найти в учебном материале об использовании в приложении данных о местоположении, а также в документации по Location API. Примеры кода содержатся в SDK сервисов Google Play.

Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.

Android SDK location

I have Xamarin Studio, and I need to specify the Android SDK Location. I have previously had Xamarin Studio working on my pc, and for some reason, I need to enter this again.

I have entered the following location:

Xamarin Studio does not accept this location and displays the following message:

This location has platform-tools and other SDK folders.

Why is this not working, and what should I do?

A-Sharabiani's user avatar

18 Answers 18

Update v3.3

enter image description here

Update:

Android Studio 3.1 update, some of the icon images have changed. Click this icon in Android Studio.

enter image description here

Original:

Click this icon in Android Studio for the Android SDK manager

enter image description here

And your Android SDK Location will be here enter image description here

luckyging3r's user avatar

Do you have a screen of the content of your folder? This is my setup:

Xamarin

Folder

I hope these screenshots can help you out.

Chris's user avatar

The Android SDK path is usually C:\Users\<username>\AppData\Local\Android\sdk .

Try to open the Android Sdk manager and the path would be displayed on the status bar.

enter image description here

DᴀʀᴛʜVᴀᴅᴇʀ's user avatar

Raj Asapu's user avatar

If you only installed Xamarin with Visual Studio setup, the android SDK location is :

You can find it in Android SDK Manager as said Raj Asapu

In visual Studio : Android SDK Manger from Visual Studio

Note : you should not use Program Files path to install Android Studio due to the space in path ! Android studio setup after Xamarin

The default location for Android sdk(s) on a Mac is:

When you first time install Android Studio Setup, you can also see the SDK folder. For me it is:

enter image description here

Chau Giang's user avatar

On 28 April 2019 official procedure is the following:

  1. Download and install Android Studio from — link
  2. Start Android Studio. On first launch, the Android Studio will download latest Android SDK into officially accepted folder
  3. When Android studio finish downloading components you can copy/paste path from the «Downloading Components» view logs so you don’t need to type your [Username]. For Windows: «C:\Users\ [Username] \AppData\Local\Android\Sdk«

Constantin Zagorsky's user avatar

Have you tried to find this folder via the Windows explorer? Can it been seen? Maybe the folder is hidden (by default install — it is hidden by the Windows operating system in the users folder). Just check that you can view hidden folders in Windows explorer (by the settings in the windows control panel > appearance and personalization > folder options > show hidden files and folders.

This happened to me as the Windows OS could not find the SDK folder which was required for the Android Studio SDK path, and was resolved by showing hidden files and folders, which enabled me to complete the default SDK install path location.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *