Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Access coarse location

Access coarse location

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

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

Нам понадобятся: Java и Apk manager
Java качаем с сайта разработчика, то есть здесь или более свежую. Apk manager же можно, и даже нужно, качать отсюда.
ApkManagerRUS.rar ( 3,77 МБ )
(Зеркало)
Новая версия: APKmanager 5.7
APKTool v1.5.2 Новый способ изменения приложений (перевода) (Пост #22030406)
Apktool для мобильных устройств.

Используешь Linux-based ОS? Тебе сюда!

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

Забыл сказать, готовое приложение находится по адресу /place-apk-here-for-modding/signedваше_приложение.apk

Надеюсь это подтолкнёт новичков к такому благородному делу, как локализация!

——Ответы на вопросы——
В:у меня такая проблема в программе apkmanager когда открываю scrip.bat на экране крякозябры
О:Нажми на иконку командной строки в левом верхнем углу, Свойства, Шрифт, выбери Lucida Console.

В: Сделал всё как написано, но при установке ошибка, что не так?
О: Данное приложение уже было установлено? Тогда надо его удалить вместе с данными перед установкой модифицированного.

В: В какой кодировки сохранять редактируемые файлы?
О: UTF-8, если используете NotePad++ смотрите Новый способ изменения приложений (перевода) .

В: Ошибка при сборке: «No resource identifier found for attribute ‘xlargeScreens’ in package ‘android'», что не так?
О (Лучший вариант) : Обновить Apktool по ссылке: http://android-apktool.googlecode.com/file. ol1.4.1.tar.bz2
О (Простой вариант) : Удалить из AndroidManifest.xml параметр xlargeScreens
После этого выполнить команду в консоли:

Если будут предложения по поводу FAQ, то пишите в личку, за темой почти не слежу.

Кстати, в Notepad++ появился плагин перевода.
Плагины — Plugin Manager — Show plugin manager — Available
Там ищем плагин Translate.
В свойствах Change language referense меняем приоритеты языков (SOURSE — исходный язык текста, DESTINATION — желаемый язык перевода), Ctrl-S и вуаля!
Далее в тексте выделяем слово/фразу и жмём Ctrl-Alt-Z Новый способ изменения приложений (перевода) (Пост #13458534)

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

Сообщение отредактировал vaalf — 23.11.17, 12:21

Access coarse location

Documentation for each constant elaborates further on the documentation provided by Google. Added in daily build 2016.2828.

Field Summary

Constructor Summary

Method Summary

Methods inherited from class java.lang.Object

Field Detail

READ_CALENDAR

Permission Group: Calendar Added in API Level 1

Constant Value: «android.permission.READ_CALENDAR»

WRITE_CALENDAR

Permission Group: Calendar Added in API Level 1

Constant Value: «android.permission.WRITE_CALENDAR»

CAMERA

This will automatically enforce the manifest element for all camera features. If you do not require all camera features or can properly operate if a camera is not available, then you must modify your manifest as appropriate in order to install on devices that don’t support all camera features.

Permission Group: Camera Added in API Level 1

Constant Value: «android.permission.CAMERA»

READ_CONTACTS

Permission Group: Contacts Added in API Level 1

Constant Value: «android.permission.READ_CONTACTS»

WRITE_CONTACTS

Permission Group: Contacts Added in API Level 1

Constant Value: «android.permission.WRITE_CONTACTS»

GET_ACCOUNTS

Note: Beginning with Android 6.0 (API level 23), if an app shares the signature of the authenticator that manages an account, it does not need «GET_ACCOUNTS» permission to read information about that account. On Android 5.1 and lower, all apps need «GET_ACCOUNTS» permission to read information about any account.

Permission Group: Contacts Added in API Level 1

Constant Value: «android.permission.GET_ACCOUNTS»

ACCESS_FINE_LOCATION

Permission Group: Location Added in API Level 1

Constant Value: «android.permission.ACCESS_FINE_LOCATION»

ACCESS_COARSE_LOCATION

Permission Group: Location Added in API Level 1

Constant Value: «android.permission.ACCESS_COARSE_LOCATION»

RECORD_AUDIO

Permission Group: Microphone Added in API Level 1

Constant Value: «android.permission.RECORD_AUDIO»

READ_PHONE_STATE

Permission Group: Phone Added in API Level 1

Constant Value: «android.permission.READ_PHONE_STATE»

CALL_PHONE

Permission Group: Phone Added in API Level 1

Constant Value: «android.permission.CALL_PHONE»

READ_CALL_LOG

Permission Group: Phone Added in API Level 16

Constant Value: «android.permission.READ_CALL_LOG»

WRITE_CALL_LOG

Permission Group: Phone Added in API Level 16

Constant Value: «android.permission.WRITE_CALL_LOG»

ADD_VOICEMAIL

Permission Group: Phone Added in API Level 14

Constant Value: «com.android.voicemail.permission.ADD_VOICEMAIL»

USE_SIP

Permission Group: Phone Added in API Level 9

Constant Value: «android.permission.USE_SIP»

PROCESS_OUTGOING_CALLS

Permission Group: Phone Added in API Level 1

Constant Value: «android.permission.PROCESS_OUTGOING_CALLS»

BODY_SENSORS

Permission Group: Sensors Added in API Level 20

Constant Value: «android.permission.BODY_SENSORS»

SEND_SMS

Permission Group: SMS Added in API Level 1

Constant Value: «android.permission.SEND_SMS»

RECEIVE_SMS

Permission Group: SMS Added in API Level 1

Constant Value: «android.permission.RECEIVE_SMS»

READ_SMS

Permission Group: SMS Added in API Level 1

Constant Value: «android.permission.READ_SMS»

RECEIVE_WAP_PUSH

Permission Group: SMS Added in API Level 1

Constant Value: «android.permission.RECEIVE_WAP_PUSH»

RECEIVE_MMS

Permission Group: SMS Added in API Level 1

Constant Value: «android.permission.RECEIVE_MMS»

READ_CELL_BROADCASTS

WARNING! This permission is hidden in the Android source code. Use at your own risk!

Permission Group: SMS Hidden in Android source. Added approximately in API Level 16.

Constant Value: «android.permission.READ_CELL_BROADCASTS»

READ_EXTERNAL_STORAGE

Any app that declares the WRITE_EXTERNAL_STORAGE permission is implicitly granted this permission.

This permission is enforced starting in API Level 19. Before API level 19, this permission is not enforced and all apps still have access to read from external storage. You can test your app with the permission enforced by enabling Protect USB storage under Developer options in the Settings app on a device running Android 4.1 or higher.

Also starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by getExternalFilesDir(String) and getExternalCacheDir().

Permission Group: STORAGE Added in API Level 16

Constant Value: «android.permission.READ_EXTERNAL_STORAGE»

WRITE_EXTERNAL_STORAGE

Starting in API Level 19, this permission is not required to read/write files in your application-specific directories returned by getExternalFilesDir(String) and getExternalCacheDir().

Permission Group: STORAGE Added in API Level 4

Exploring Android Q: Location Permissions

This article was originally posted on https://joebirch.co/

Last week we saw the announcement of the Android Q beta release

With this version of Android comes a collection of exciting changes which we need to get our apps ready for. In this set of articles I’m going to be diving into each one of these so that we are fully prepared for getting our apps ready!

Note: You can find the code for this article here.

As outlined in the beta release notes for Android Q, one of the changes we are seeing introduced is the way in which we work with user locations inside of our applications — these changes affect the access of the location in both the foreground and background. This gives our users more control of when they wish apps to be able to access their location — allowing them to restricting it to only when the app is currently in use. In this post I want to take a quick dive into how these changes will effect apps, along with what we need to do to adapt to these changes.

Читать еще:  Point in time

Foreground Location Permission

There may be cases where an application requires access to the users location whilst there is a continuation of user-initiated actions. For example, maybe your app delivers navigation to the user — once the user navigates to their home screen from your app, you’ll want to continue having access to their location in-order to continue serving navigation to them. If you’re utilising a foreground service to handle this functionality then we’ll only need foreground access to the users location, as there’s no reason for us to access the users location from the background (we’ll cover the case where we may not be using a foreground service in the next section.). When your application requires access to this location data, it’s important to let your user know why when accessing it.

To begin with, any service of this kind that makes use of the users location needs to be declared as a location foreground service. This can be done by making use of the foregroundServiceType when declaring your service within your manifest file.

Before we try to kick off our foreground service we need to ensure that we have the required permission from the user to do so. We can do this by checking for the ACCESS_COARSE_LOCATION permission. Now, this isn’t a new permission — in fact, it’s been around since API level 1. However, we only previously needed to define within our application manifest file — now we must request this permission at runtime. You can see how this now gives our user much more control over how this permission is used.

In this code above you can see that we begin by checking whether we have the location permission. If so, we can continue to handle the location flow or otherwise, we must request the permission from the user. If this is the case, then we will receive the permission state within the onRequestPermissionsResult() callback within our calling class.

When we request this permission, our user will be displayed the following dialog:

As you can see, the intent of the permission has been made quite clear — our app will only have access to their location whilst in the foreground (as in, the app is being used). If the user has denied this permission at any point and we request it again, then they will be shown a slight variation of the dialog:

Similar to how the runtime permissions in android usually work, we know are shown an option where the user can request not to be asked again. Because of this functionality, it’s important that you only ask for this foreground location access at the point it is required. This guides your user as to why the permission is required in the current context, rather than give the feeling that it is being asked for no reason.

Background location permission

When it comes to accessing the user location when our app is backgrounded, things work a little bit differently. We first need to add a new permission to our manifest file, this is the ACCESS_BACKGROUND_LOCATION permission. Although this is declared in the manifest, it can still be revoked at any time by the user.

Note that here we aren’t required to add the foregroundServiceType service type to our service declaration, this is because we don’t need momentary permission to run outside of our app — this background permission already gives our application the ability to do this.

As well as the above, the permission needs to be granted by the user at runtime. So before we try and access the users location from the background, we need to ensure that we have the required permission from the user to do so. We can do this by checking for the ACCESS_BACKGROUND_LOCATION permission. You can see again how this now gives our user much more control over how this permission is used and avoids background location access being abused.

Our code for checking the permission may look something like this:

You’ll notice that this code is pretty similar to the checks that we defined for the foreground location permission. Here we check for both permissions, giving us a fallback in location retrieval should the user deny us background access for some reason.

When we request this permission, our user will be displayed the following dialog:

The intent of the permission has been made quite clear — our app will be able to access their location whilst in the background. If the user has denied this permission at any point and we request it again, then they will be shown a slight variation of the dialog:

Similar to how the runtime permissions in android usually work, we know are shown an option where the user can request not to be asked again. Because of this functionality, it’s important that you only ask for this background location access at the point it is required. This guides your user as to why the permission is required in the current context, rather than give the feeling that it is being asked for no reason.

We can see from this article that Android Q changes the way in which our applications works with location permissions. Our apps will no longer be able to freely access the user locations from services, whether in the foreground or background. To support backward compatibility, if your application doesn’t target Q then the ACCESS_BACKGROUND_LOCATION permission will be added if the COARSE or FINE permissions are declared. Similarly, requesting either of the two at runtime will also grant the permission.

These changes give our users more control over how applications access their location, allowing us to create apps with the users privacy and safety in mind. Any questions about these location changes? Feel free to reach out in the comments!

AndroidManifest.xml – для чего он?

В этом более теоретическом, чем практическом уроке хочу открыть на некоторые возможности AndroidManifest.xml, на который мало кто обращает особое внимание.

Содержимое

AndroidManifest.xml – предоставляет подробную информацию о приложении. В каждом Android приложении вы должны в увидите этот файл, так как он является обязательным для создания приложения на ОС Android.

Предназначения

В AndroidManifest.xml можно настроить следующие возможности:

1. Указать имя Java-пакета приложения, который служит уникальным идентификатором;

2. Описать компоненты приложения, службы;

3. Указать список необходимых разрешений для обращения к защищенным частям API и взаимодействия с другими приложениями;

4. Разрешить доступ к ресурсам, которые сторонние приложения обязаны иметь для взаимодействия с компонентами данного приложения;

5. Указать минимальный и максимальный уровень API Android, необходимый для работы приложения;

Структура ‘AndroidManifest.xml’

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

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

Читать еще:  Access выпадающий список в форме

Вот все основные возможности AndroidManifest.xml они представлены в виде xml тегов.

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

А теперь по очереди, что и для чего.

Это самый главный тег в котором вложена вся конфигурация проекта.

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

Что же значат эти параметры?

xmins:android – определяет пространство имен Android;

package – определяет уникальное имя пакета приложения, которое вы задали при создании проекта.

Для чего нужно указывать package? Если вы захотите загрузить ваше приложение на Google Play, то он проверяет уникальность при приеме приложения, поэтому рекомендуется использовать свое имя для избежания конфликтов с другими разработчиками.

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

Выше мы говори про уникальность пакета, так вот если вы ранее загрузили на Google Play ваше приложение, то когда вы решите загрузить обновленную версию приложения, то вам нужно придерживаться нескольких правил. Имя пакета должно совпадать с тем, что уже загружено Google Play и указать версию android:versionCode на порядок выше. Но это при условии что вы выпускаете новую версию приложения, в случае если вы хотите добавить немного исправленную версию, то это читайте ниже.

Изменив данный параметр и загрузив приложение на Google Play все пользователям вашего приложения будет предложено обновится до новой версии приложения.

android:versionName – указывает номер пользовательской версии. Если вы нашли несколько недоработок в вашем приложении и исправили их, то в этом случае можно указать для этого поля новую версию, что будет говорить Google Play, что это не новая версия приложения, а улучшенная. Для именования версии можно использовать строку или строковый ресурс.

Изменив данный параметр и загрузив приложение на Google Play все пользователям вашего приложения будет предложено обновится до модифицированной версии приложения.

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

Разрешения предоставляются во время установки приложения, а не во время его работы. имеет единственный атрибут с именем разрешения android:name.

android:name – позволяет дать разрешения на использование ресурсов системы. Например:

android:name=’android.permission.CAMERA’
или
android:name=’
android.permission.READ_CONTACTS’

Наиболее распространенные разрешения

INTERNET – доступ к интернету;

READ_CONTACTS – чтение данных из адресной книги пользователя;

– WRITE_CONTACTS – запись данных из адресной книги пользователя;

– RECEIVE_SMS – обработка входящих SMS;

– ACCESS_COARSE_LOCATION – использование приблизительного определения местонахождения при помощи вышек сотовой связи или точек доступа Wi-Fi;

– ACCESS_FINE_LOCATION – точное определение местонахождения при помощи GPS.

– позволяет установить разрешения на использования ресурсов системы или запретить использование компонентов приложения.

android:name – название разрешения

android:label – имя разрешения, отображаемое пользователю

android:description – описание разрешения

android:icon – значок разрешения

android:permissionGroup – определяет принадлежность к группе разрешений

android:protectionLevel – уровень защиты

– объявляет базовое имя для дерева разрешений.

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

определяет имя для набора логически связанных разрешений.

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

Разрешение можно поместить в группу, назначив имя группы в атрибуте permissionGroup элемента

объявляет объект instrumentation, который дает возможность контролировать взаимодействие приложения с системой.

Обычно используется при отладке и тестировании приложения и удаляется из release-версии приложения.

позволяет объявлять совместимость приложения с указанной версией (или более новыми версиями API) платформы Android.

Уровень API, объявленный приложением, сравнивается с уровнем API системы мобильного устройства, на который инсталлируется данное приложение.

Данный тег имеет следующие атрибуты:

android:minSdkVersion – определяет минимальный уровень API, требуемый для работы приложения.

Система Android будет препятствовать тому, чтобы пользователь установил приложение, если уровень API системы будет ниже, чем значение, определенное в этом атрибуте. Вы должны всегда объявлять этот атрибут, например:

android:minSdkVersion=”17″

android:maxSDKVersion – позволяет определить самую позднюю версию, которую готова поддерживать ваше приложение.

Ваше приложение будет невидимым в Google Play для устройств с более свежей версией.

targetSDKVersion – позволяет указать платформу, для которой вы разрабатывали и тестировали приложение.

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

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

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

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

– reqHardKeyboard – используйте значение true, если приложению нужна аппаратная клавиатура;

– reqKeyboardType – позволяет задать тип клавиатуры: nokeys, qwerty, twelvekey, undefined;

– reqNavigation – укажите одно из значений: nonav, dpad, trackball, wheel или undefined, если требуется устройство для навигации;

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

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

объявляет определенную функциональность, требующуюся для работы приложения.

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

android.hardware.camera.front – требуется аппаратная камера

android.hardware.camera.autofocus – требуется камера с автоматической фокусировкой

В офф. документации Android можно посмотреть все параметры, вот ссылка.

Можно переопределить требование по умолчанию, добавив атрибут required со значением false.

Например, если вашей программе не нужно, чтобы камера поддерживала автофокус:

определяет разрешение экрана, требуемое для функционирования устройства.

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

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

smallScreen – QVGA экраны

normalScreen – стандартные экраны HVGA и WQVGA

largeScreen – большие экраны

xlargeScreen – очень большие экраны, которые превосходят размеры планшетов

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

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

Начиная с API 13 – Android 3, у тега появились новые атрибуты:

requiresSmallestWidthDp – указываем минимальную поддерживаемую ширину экрана в аппаратно-независимых пикселях. С его помощью можно отфильтровать устройства при размещении приложения в Google Play

compatibleWidthLimitDp – задаёт верхнюю границу масштабирования для вашего приложения. Если экран устройства выходит за указанную границу, система включит режим совместимости.

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

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

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

Каждый элемент указывает конкретный размер экрана с которой приложение совместимо.

Читать еще:  Access день рождения

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

Данный тех имеет два атрибута:

android:screenSize – указывает размер экрана.

xlarge – очень большой;

android:screen – указываем dpi

Location Data

One of the unique features of mobile applications is location awareness. Mobile users bring their devices with them everywhere, and adding location awareness to your app offers users a more contextual experience.

Code samples

The ApiDemos repository on GitHub includes samples that demonstrate the use of location on a map:

  • MyLocationDemoActivity: Using the My Location layer, including runtime permissions
  • LocationSourceDemoActivity: Using a custom LocationSource
  • CurrentPlaceDetailsOnMap: Finding the current location of an Android device and displaying details of the place (business or other point of interest) at that location. See the tutorial on showing current place details on a map.

Working with location data

The location data available to an Android device includes the current location of the device — pinpointed using a combination of technologies — the direction and method of movement, and whether the device has moved across a predefined geographical boundary, or geofence. Depending upon the needs of your application, you can choose between several ways of working with location data:

  • The My Location layer provides a simple way to display a device’s location on the map. It does not provide data.
  • The Google Play services Location API is recommended for all programmatic requests for location data.
  • The LocationSource interface allows you to provide a custom location provider.

Location permissions

If your app needs to access the user’s location, you must request permission by adding the relevant Android location permission to your app.

Android offers two location permissions: ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION . The permission you choose determines the accuracy of the location returned by the API. You only need to request one of the Android location permissions, depending on the level of accuracy you need:

  • android.permission.ACCESS_COARSE_LOCATION – Allows the API to use WiFi or mobile cell data (or both) to determine the device’s location. The API returns the location with an accuracy approximately equivalent to a city block.
  • android.permission.ACCESS_FINE_LOCATION – Allows the API to determine as precise a location as possible from the available location providers, including the Global Positioning System (GPS) as well as WiFi and mobile cell data.

Add the permissions to the app manifest

Add one of the following permissions as a child of the element in your Android manifest. Either the coarse location permission:

Or the fine location permission:

Request runtime permissions

Android 6.0 (Marshmallow) introduces a new model for handling permissions, which streamlines the process for users when they install and upgrade apps. If your app targets API level 23 or later, you can use the new permissions model.

If your app supports the new permissions model and the device is running Android 6.0 (Marshmallow) or later, the user does not have to grant any permissions when they install or upgrade the app. The app must check to see if it has the necessary permission at runtime, and request the permission if it does not have it. The system displays a dialog to the user asking for the permission.

For best user experience, it’s important to request the permission in context. If location is essential to the functioning of your app, then you should request the location permission at app startup. A good way to do this is with a warm welcome screen or wizard that educates users about why the permission is required.

If the app requires the permission for only part of its functionality, then you should request the location permission at the time when the app performs the action that requires the permission.

The app must gracefully handle the case where the user does not grant permission. For example, if the permission is needed for a specific feature, the app can disable that feature. If the permission is essential for the app to function, the app can disable all its functionality and inform the user that they need to grant the permission.

The following code sample checks for permission using the Support library before enabling the My Location layer:

The following sample handles the result of the permission request by implementing the ActivityCompat.OnRequestPermissionsResultCallback from the Support library:

For more code samples and best practices for Android runtime permissions, see the documentation for the Android permissions model.

The My Location layer

You can use the My Location layer and the My Location button to show your user their current position on the map. Call mMap.setMyLocationEnabled() to enable the My Location layer on the map.

The following sample shows a simple usage of the My Location layer:

When the My Location layer is enabled, the My Location button appears in the top right corner of the map. When a user clicks the button, the camera centers the map on the current location of the device, if it is known. The location is indicated on the map by a small blue dot if the device is stationary, or as a chevron if the device is moving.

The following screenshot shows the My Location button at top right and the My Location blue dot in the center of the map:

You can prevent the My Location button from appearing by calling UiSettings.setMyLocationButtonEnabled(false) .

Your app can respond to the following events:

  • If the user clicks the My Location button, your app receives an onMyLocationButtonClick() callback from the GoogleMap.OnMyLocationButtonClickListener .
  • If the user clicks the My Location blue dot, your app receives an onMyLocationClick() callback from the GoogleMap.OnMyLocationClickListener .

From our Terms of Service

Protect user privacy,
keep them informed

Always inform users of how you will use their data, and don’t make it possible to identify individual users. Get user consent before using their location, and let them revoke consent at any time.

The Google Play services Location API

The Google Play services Location API is the preferred method for adding location awareness to your Android application. It includes functionality that lets you:

  • Determine the device location.
  • Listen for location changes.
  • Determine the mode of transportation, if the device is moving.
  • Create and monitor predefined geographical regions, known as geofences.

The location APIs make it easy for you to build power efficient, location-aware applications. Like the Maps SDK for Android, the Location API is distributed as part of the Google Play services SDK. For more information on the Location API, please refer to the Android training class Making Your App Location Aware or the Location API Reference. Code examples are included as part of the Google Play services SDK.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Ссылка на основную публикацию
Adblock
detector