Сервис для
сео - оптимизаторов

Найди ошибки на сайте
Ошибки мешают продвижению сайта
Исправь ошибки на сайте
Сайт без ошибок продвигать легче
Получи новых клиентов
Новые клиенты принесут больше прибыль

Создание ориентированных на местоположение приложений Android с помощью Google Maps

  1. Создай свой проект
  2. Обновление зависимостей проекта
  3. Получить ключ API Карт Google
  4. Обновление вашего манифеста
  5. Доступ к местоположению пользователя
  6. Другие типы карт
  7. Резюме

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

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

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

Добавление карты в ваш последний проект приложения для Android может значительно улучшить взаимодействие с пользователем - создаете ли вы приложение «Галерея», которое позволяет пользователю точно видеть, где была сделана каждая фотография; приложение для упражнений, которое отображает маршрут, по которому вы пошли на утренней пробежке, или приложение для заметок, которое позволяет пользователям самим писать напоминания, которые появляются автоматически, как только они достигают определенного места.

В этой статье я покажу вам, как использовать API Карт Google для добавления карт в ваши приложения Android. Эти карты основаны на данных Карт Google и будут иметь такой же внешний вид и почти такие же функциональные возможности, что и карты, которые вы встречаете в официальном приложении Google Maps для мобильных устройств.

Мы начнем с использования встроенного шаблона Google Maps для Android Studio, чтобы быстро сгенерировать приложение, отображающее карту, прежде чем добавлять сведения о локализации, чтобы это приложение могло отслеживать и отображать текущее местоположение пользователя.

Создай свой проект

Google Maps Android API распространяется как часть SDK Google Play Services, поэтому первое, что вам нужно сделать, это запустить SDK Manager и убедиться, что у вас установлена ​​последняя версия Google Play Services - если обновление доступно, то сейчас время установить его.

Затем создайте проект Android Studio с настройками по вашему выбору, но когда вы дойдете до экрана «Добавить действие на мобильный», обязательно выберите «Активность на Google Картах».
Затем создайте проект Android Studio с настройками по вашему выбору, но когда вы дойдете до экрана «Добавить действие на мобильный», обязательно выберите «Активность на Google Картах»

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

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

Начнем с файла res / layout / activity_maps.xml нашего проекта. Откройте этот файл, и вы увидите, что элемент карты вставляется в ваш макет с помощью MapFragment.

Функции MapFragment во многом похожи на ваш типичный фрагмент - он представляет часть вашего пользовательского интерфейса, и вы можете комбинировать его с другими макетами для создания многопанельного макета. Однако, помимо того, что MapFragment выступает в роли контейнера для вашей карты, он автоматически обрабатывает все потребности жизненного цикла вашей карты, что делает его одним из самых простых способов вставки карты в ваше приложение.

Ваш автоматически сгенерированный код activity_maps.xml должен выглядеть примерно так:

<фрагмент xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: map = "http://schemas.android.com/apk/res-auto" xmlns: tools = "http : //schemas.android.com/tools "android: id =" @ + id / map "// Если Android собирается распознавать этот фрагмент как MapFragment, то для атрибута // фрагмента android: name необходимо установить значение" " com.google.android.gms.maps.MapFragment »// android: name =" com.google.android.gms.maps.SupportMapFragment "android: layout_width =" match_parent "android: layout_height =" match_parent "tools: context =" com.jessicathornsby.myapplication.MapsActivity "/>

Объявление вашего MapFragment с помощью XML может быть самым простым решением (и этот подход я буду использовать в этом руководстве), но если вам нужно, вы можете добавить MapFragment программно, создав экземпляр MapFragment и затем добавив его в текущий Активность, используя FragmentTransaction.add:

mMapFragment = MapFragment.newInstance (); FragmentTransaction fragTransaction = getFragmentManager (). BeginTransaction (); фрагментTransaction.add (R.id.my_container, mMapFragment); fragmentTransaction.commit ();

Другой автоматически созданный файл, который стоит подробно изучить, - это файл MapsActivity.java вашего проекта:

import android.support.v4.app.FragmentActivity; импорт android.os.Bundle; import com.google.android.gms.maps.CameraUpdateFactory; импорт com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; // Поскольку мы добавляем нашу карту через фрагмент, это действие должно расширять FragmentActivity. // Вы также заметите, что ваш проект реализует onMapReadyCallback, который // запускается, когда карта готова к использованию // открытый класс MapsActivity расширяет FragmentActivity реализует OnMapReadyCallback {// GoogleMap является основным классом API Карт и отвечает за него для обработки важных // операций, таких как подключение к службе Google Maps, загрузка фрагментов карты, // и реагирование на взаимодействия с пользователем // private GoogleMap mMap; @Override protected void onCreate (Bundle saveInstanceState) {super.onCreate (сохраненныйInstanceState); setContentView (R.layout.activity_maps); // Получить карту из SupportMapFragment // SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager () // Вызвать FragmentManager.findFragmentById () и передать ему идентификатор элемента пользовательского интерфейса, где // вы хотите отобразить карту, в этом примере это 'map' // .findFragmentById (R.id.map); // Вы не можете создать экземпляр объекта GoogleMap напрямую, но вы можете использовать getMapAsync, чтобы установить // обратный вызов, который запускается, когда экземпляр GoogleMap готов к использованию // mapFragment.getMapAsync (this); } @Override // Установите экземпляр OnMapReadyCallback в вашем MapFragment. Если у пользователя не установлены // сервисы Google Play, на этом этапе ему будет предложено установить его public void onMapReady (GoogleMap googleMap) {mMap = googleMap; // Этот пример приложения не может получить доступ к местоположению пользователя, но он эмулирует эту функциональность //, отображая маркер в стиле «ты здесь», который жестко запрограммирован для отображения в Сиднее, // Австралия. Здесь мы определяем координаты широты и долготы, которые этот маркер будет // использовать LatLng sydney = new LatLng (-34, 151); // Добавить маркер на карту в координатах Сиднея. Если не указано иное, // Android использует стандартный значок маркера Google Maps, но вы можете настроить этот значок, // изменив его цвет, изображение или опорную точку, если это необходимо. mMap.addMarker (new MarkerOptions (). position (sydney) .title ("Маркер в Сиднее")); // Используйте CameraUpdate, чтобы переместить «камеру» карты в текущее местоположение пользователя - в этом // примере это жестко заданные координаты Сиднея. Когда вы создаете свои собственные приложения, // вы можете настроить эту строку для анимации движений камеры, что обычно // обеспечивает лучший пользовательский опыт. Чтобы анимировать камеру, замените GoogleMap.moveCamera // на GoogleMap.animateCamera // mMap.moveCamera (CameraUpdateFactory.newLatLng (sydney)); }}

Как уже упоминалось, Android Studio выполняет большую часть тяжелой работы за вас, но в своем текущем состоянии этот проект не совсем способен отображать данные Google Maps. Вам по-прежнему нужно внести несколько изменений в свой код и приобрести ключ API Карт Google, о которых мы расскажем в следующих нескольких разделах.

Обновление зависимостей проекта

Первое изменение, которое вам нужно сделать, - это объявить Google Maps и Google Location API в качестве зависимостей проекта. Откройте файл build.gradle уровня модуля вашего проекта, и вы увидите, что Android Studio уже добавила SDK Google Play Services в раздел зависимостей:

примените плагин: 'com.android.application' ... dependencies {compile 'com.google.android.gms: play-services: 9.8.0'}

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

Ради более упорядоченного проекта я собираюсь удалить эту общую зависимость служб Google Play и указать, что в моем проекте используются только API Карт Google и Местоположение:

dependencies {compile 'com.google.android.gms: play-services-maps: 9.8.0' compile 'com.google.android.gms: play-services-location: 9.8.0}

Обратите внимание, что, несмотря на то, что вы декларируете свои зависимости Сервисов Google Play, вы должны обновлять их соответствующие номера версий каждый раз, когда загружаете новую версию SDK Сервисов Google Play.

Получить ключ API Карт Google

Если ваш проект собирается получать данные с серверов Google Maps, ему потребуется ключ API Карт Google, который вы получите, зарегистрировав свой проект с помощью консоли API Google.

Еще раз, шаблон «Google Maps Activity» проделал большую тяжелую работу за вас. Этот шаблон включает файл google_maps_api.xml, содержащий URL-адрес, который можно использовать для создания уникального ключа API Карт Google. Хотя вы можете войти в Google API Console независимо и генерировать ключи API вне этого шаблона, преимущество использования этого URL заключается в том, что большая часть информации о вашем проекте уже введена для вас. В целях экономии времени, этот метод я собираюсь использовать для генерации моего ключа API:

  • Откройте файл res / values ​​/ google_maps_api.xml вашего проекта.
  • Скопируйте URL-адрес внутри этого файла и вставьте его в веб-браузер. Это приведет вас прямо к консоли API Google.

Это приведет вас прямо к консоли API Google

  • Убедитесь, что в раскрывающемся меню выбрано «Создать проект», затем нажмите «Продолжить».
  • Ознакомьтесь с условиями, и если вы готовы продолжить, нажмите «Согласиться и продолжить».
  • При появлении запроса нажмите кнопку «Создать ключ API».
  • На этом этапе вы можете выбирать между генерацией общего ключа API, который не имеет ограничений и может работать на любой платформе, или ограниченным API, который может работать только на указанной платформе. API-интерфейсы с ограниченным доступом, как правило, более безопасны, поэтому, если у вас нет веских оснований этого не делать, вы, как правило, захотите сгенерировать API-интерфейс с ограничениями, нажав «Ограничить ключ» в появившемся всплывающем окне.
  • В разделе «Основные ограничения» убедитесь, что выбраны «Приложения Android».
  • Нажмите «Сохранить».
  • Теперь вы попадете в раздел «Учетные данные» консоли API Google. Найдите ключ API, который вы только что создали, и скопируйте его.
  • Вернитесь в Android Studio и вставьте этот ключ в файл google_maps_api.xml, в частности его элемент <string name = ”google_maps_key”.

Когда вы добавляете ключ API в файл google_maps_api.xml, Android Studio должна автоматически скопировать этот ключ в манифест вашего проекта. Рекомендуется проверить, что это действительно произошло, поэтому откройте свой манифест и убедитесь, что в следующем разделе теперь отображается ваш уникальный ключ API:

<meta-data android: name = "com.google.android.geo.API_KEY" android: value = "YOUR_API_KEY" />

Обновление вашего манифеста

Пока у вас открыт Манифест вашего проекта, давайте внесем еще несколько изменений в этот файл. Во-первых, вам нужно указать версию сервисов Google Play, которую вы используете, например:

<meta-data android: name = "com.google.android.gms.version" android: value = "@ integer / google_play_services_version" />

Если вы ориентируетесь на что-либо более раннее, чем версия 8.3 SDK сервисов Google Play, то вам также необходимо добавить разрешение WRITE_EXTERNAL_STORAGE:

<использует-разрешение android: name = "android.permission.WRITE_EXTERNAL_STORAGE" />

Обратите внимание, что если вы ориентируетесь на Google Play Services 8.3 или более поздней версии, тогда вашему приложению не нужно будет явно запрашивать разрешение на запись во внешнее хранилище.

Далее, поскольку Google Maps Android API использует OpenGL ES версии 2 для визуализации своих карт, вы должны убедиться, что ваше приложение не запустится на устройстве, которое не поддерживает OpenGL ES 2, объявив android: glEsVersion 2 как необходимый особенность:

<use-feature android: glEsVersion = "0x00020000" android: required = "true" />

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

<использует-разрешение android: name = "android.permission.ACCESS_NETWORK_STATE" />

Это разрешение позволяет вашему приложению проверять состояние сети устройства, что означает, что ваше приложение может определять, может ли оно в настоящее время загружать данные из Карт Google.

<использует-разрешение android: name = "android.permission.INTERNET" />

Это разрешение дает вашему приложению возможность открывать сетевые сокеты, чтобы оно могло загружать данные с серверов Google Maps.

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

<использует-разрешение android: name = "android.permission.ACCESS_COARSE_LOCATION" />

Предоставляет вашему приложению возможность доступа к приблизительному местоположению пользователя, используя Wi-Fi устройства, данные мобильной сотовой сети или и то, и другое.

<использует-разрешение android: name = "android.permission.ACCESS_FINE_LOCATION" />

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

После внесения этих изменений в манифест вашего проекта вы готовы протестировать свое приложение. Либо подключите физическое устройство Android к компьютеру для разработки, либо запустите совместимый AVD, затем выберите «Выполнить» на панели инструментов Android Studio, а затем устройство, которое вы хотите использовать. Через несколько секунд приложение должно появиться на экране.
После внесения этих изменений в манифест вашего проекта вы готовы протестировать свое приложение

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

Доступ к местоположению пользователя

Есть несколько способов добавить информацию о местоположении в ваше приложение, но самый простой способ - использовать API определения местоположения Google Play Services, который распространяется как часть SDK Google Play Services.

В следующем коде я все еще использую тот же ключ API и файл ресурсов макета, но я обновил файл MapsActivity.java моего проекта, чтобы определить последнее известное местоположение устройства пользователя, которое в большинстве случаев будет примерно эквивалентным. в текущее местоположение пользователя:

пакет com.jessicathornsby.myapplication; import android.support.v4.app.ActivityCompat; импорт android.os.Build; импорт android.os.Bundle; import com.google.android.gms.common.api.GoogleApiClient; import android.support.v4.content.ContextCompat; import android.support.v4.app.FragmentActivity; импорт com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; импорт com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.SupportMapFragment; import android.content.pm.PackageManager; импорт android.location.Location; import com.google.android.gms.location.LocationListener; import com.google.android.gms.location.LocationRequest; импортировать com.google.android.gms.location.LocationServices; // Поскольку это самый простой способ добавления карты в ваш проект, я собираюсь придерживаться использования // открытого MapFragment // класса. Класс MapsActivity расширяет FragmentActivity, реализует OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, LocationListener {private GoogleMap mMap; GoogleApiClient mGoogleApiClient; Маркер mLocationMarker; Расположение mLastLocation; LocationRequest mLocationRequest; @Override protected void onCreate (Bundle saveInstanceState) {super.onCreate (сохраненныйInstanceState); setContentView (R.layout.activity_maps); if (Build.VERSION.SDK_INT & gt; = Build.VERSION_CODES.M) {checkLocationPermission (); } SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager (.findFragmentById (R.id.map); mapFragment.getMapAsync (this);} общедоступная статическая финальная переменная int MY_PERMISSIONS_REQUEST_LOCATION = 1; общедоступная логическая проверка Android запрашивать разрешения во время выполнения, и пользователь имеет // возможность предоставлять или отклонять каждое разрешение. Пользователи также могут аннулировать ранее предоставленное // разрешение в любое время, поэтому ваше приложение всегда должно проверять, имеет ли оно доступ к каждому // разрешение, прежде чем пытаться выполнить действия, требующие этого разрешения. Здесь мы используем // ContextCompat.checkSelfPermission, чтобы проверить, есть ли у этого приложения разрешение // ACCESS_COARSE_LOCATION if (ContextCompat.checkSelfPermission (this, android.Manifest.permission.ACCESS_COARSE_LOCATION ) // Если у вашего приложения есть доступ к COARSE_LOCATION, этот метод вернет // PackageManager.PERMISSION_GRANTED //! = PackageManager.PERMISSION_GRANTED) {if (ActivityComp at.shouldShowRequestPermissionRationale (this, android.Manifest.permission.ACCESS_COARSE_LOCATION)) {// Если ваше приложение не имеет этого разрешения, вам нужно запросить его, вызвав // метод ActivityCompat.requestPermissions // requestPermissions (new String [] {android.Manifest.permission.ACCESS_COARSE_LOCATION}, MY_PERMISSIONS_REQUEST_LOCATION); } else {// Запросить разрешение, запустив стандартный диалог разрешений Android. // Если вы хотите предоставить какую-либо дополнительную информацию, например, почему вашему приложению требуется это // конкретное разрешение, то вам нужно добавить эту информацию перед вызовом // requestPermission // requestPermissions (new String [] {android.Manifest. Разрешение. ACCESS_COARSE_LOCATION}, MY_PERMISSIONS_REQUEST_LOCATION); } вернуть ложь; } else {return true; }} @Override protected void onResume () {super.onResume (); } @Override protected void onPause () {super.onPause (); } @Override public void onMapReady (GoogleMap googleMap) {mMap = googleMap; // Укажите, какую карту вы хотите отобразить. В этом примере я придерживаюсь // классической карты «Normal» mMap.setMapType (GoogleMap.MAP_TYPE_NORMAL); if (Build.VERSION.SDK_INT & gt; = Build.VERSION_CODES.M) {if (ContextCompat.checkSelfPermission (this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {buildGA) // Хотя местоположение пользователя будет обновляться автоматически на регулярной основе, вы также можете // дать своим пользователям возможность инициировать обновление местоположения вручную. Здесь мы добавляем кнопку // «Мое местоположение» в верхний правый угол нашего приложения; когда пользователь нажимает эту кнопку, // камера обновляется и центрируется на текущем местоположении пользователя // mMap.setMyLocationEnabled (true); }} else {buildGoogleApiClient (); mMap.setMyLocationEnabled (истина); }} Защищено синхронизировано void buildGoogleApiClient () {// Используйте класс GoogleApiClient.Builder для создания экземпляра клиента API Google Play Services // mGoogleApiClient = new GoogleApiClient.Builder (это) .addConnectionCallbacks (это) .addApi (LocationServices .API) .build (); // Подключаемся к сервисам Google Play, вызывая метод connect () // mGoogleApiClient.connect (); } @Override // Если запрос на подключение успешно завершен, будет вызван метод onConnected (Bundle) // и будут выполнены любые элементы в очереди // public void onConnected (Bundle bundle) {mLocationRequest = new LocationRequest (); mLocationRequest.setInterval (2000); if (ContextCompat.checkSelfPermission (this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {// Извлечение последнего известного местоположения пользователя // LocationServices.FusedLocationApi.requestLocationUpdatesCateAgnateAgateAgnesCateAccessed, mGUIUI, Moogle }} @Override public void onConnectionSuspended (int i) {} // Отображение нескольких маркеров «текущего местоположения» только сбивает с толку ваших пользователей! // Чтобы убедиться, что на экране только один маркер за раз, я использую // mLocationMarker.remove, чтобы очистить все маркеры при каждом изменении местоположения пользователя. @Override public void onLocationChanged (Location location) {mLastLocation = location; if (mLocationMarker! = null) {mLocationMarker.remove (); } // Чтобы сохранить срок службы аккумулятора устройства, вы, как правило, захотите использовать // removeLocationUpdates для приостановки обновлений местоположения, когда ваше приложение больше не // отображается на экране // if (mGoogleApiClient! = Null) {LocationServices.FusedLocationApi.removeLocationUpdates (mGoogleApiClient, это); }} // После того, как пользователь предоставил или отклонил ваш запрос на разрешение, будет вызван метод // onRequestPermissionsResult класса Activity, и система передаст // результаты диалога «Предоставление разрешения» в виде int // @Override public void onRequestPermissionsResult (int requestCode, String permissions [], int [] grantResults) {switch (requestCode) {case MY_PERMISSIONS_REQUEST_LOCATION: {// Если запрос отменен, массив результатов будет пуст (0) // if (grantResults.length) > 0 && grantResults [0] == PackageManager.PERMISSION_GRANTED) {// Если пользователь предоставил ваш запрос на разрешение, то ваше приложение теперь может выполнять все свои // связанные с местоположением задачи, включая отображение местоположения пользователя на карте // if (ContextCompat.checkSelfPermission (this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {if (mGoogleApiClient == null) {buildGoogleApiClient (); } mMap.setMyLocationEnabled (true); }} else {// Если пользователь отклонил ваш запрос на разрешение, то на этом этапе вы можете // отключить любую функциональность, которая зависит от этого разрешения //} return; }}}}

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

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

Другие типы карт

В этом примере мы устанавливаем тип карты на «нормальный», однако, если вам не нравится внешний вид карты, отображаемой на вашем устройстве Android, вы всегда можете изменить ее на любую из других карт, поддерживаемых Google Maps. API:

  • MAP_TYPE_HYBRID. Спутниковая карта с прозрачным слоем, отображающим основные дороги и метки объектов.

Спутниковая карта с прозрачным слоем, отображающим основные дороги и метки объектов

  • MAP_TYPE_SATELLITE. Спутниковая карта с дорогами, но без меток.

Спутниковая карта с дорогами, но без меток

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

Некоторые дороги и знаки также могут быть видны

Резюме

В этой статье мы рассмотрели, как использовать API Карт Google для добавления содержимого карты в ваше приложение и как отображать текущее местоположение пользователя на этой карте, используя новую модель разрешений, представленную в Android 6.0. Если вы хотите попробовать этот проект для себя, вы можете найти полный код на GitHub ,

Похожие

Как экспортировать Google Doc с вашего iPhone
У пользователей Google Документов есть много возможностей экспортировать документы для публикации в формате PDF или через Airdrop. Вот как. Изображение: CNET Если вы работаете в организации, которая использует приложения Google Suite G для общения
Представляем веб-переводчик Google для Drupal.
... вашего сайта всегда был главной необходимостью, особенно если ваш сайт ориентирован на мультикультурную аудиторию. Одним из недавно улучшенных инструментов Google, от их инструментов перевода контента, является Сайт переводчик , Двигатель этого инструмента основан на их Google Translator Toolkit , который использует память переводов (ТМ), чтобы значительно
Обновление 12/28: Доступного хранилища нет в официальном Android пирог обновление для устройств ...
Обновление 12/28: Доступного хранилища нет в официальном Android пирог обновление для устройств Samsung. Мы смогли подтвердить это на нашем Galaxy Note 9 , Когда Android Marshmallow был запущен в 2015 году, он представил функцию, которая значительно улучшила пользовательский интерфейс для многих, включая меня: адаптируемое хранилище. Когда
Google Analytics: отчеты о часах и днях недели
В какое время дня ваш сайт получает больше всего трафика? Что еще более важно, в какое время дня ваш сайт работает лучше всего с точки зрения целей или продаж? Ниже я опишу различные методы, с помощью которых вы можете просматривать жизненно важную статистику веб-сайта на основе
Бесплатный VPN-прокси доступен для пользователей Google Chrome
... Google Chrome могут защищать свои сеансы просмотра веб-страниц с помощью бесплатного прокси-сервера виртуальной частной сети (VPN). Виртуальные частные сети создают безопасное соединение между веб-браузером пользователя и VPN-сервером, что означает, что они могут помочь защитить пользователя от других, следящих за его действиями в веб-браузере по Wi-Fi, сотовым сетям или широкополосной сети. Единственная проблема заключается в том, что большинство услуг VPN не бесплатны и доступны только
Как создать сайт с помощью Сайтов Google
... карту или создайте и вставьте форму Google для сбора запросов. После того как вы создали контент своего сайта, опубликуйте его и настройте параметры, чтобы кто-нибудь мог найти и просмотреть сайт. Выберите «Опубликовать» после того, как вы добавили контент, который вам нужен на вашем сайте. Введите имя для своего сайта, подходящее для вашей организации, например «YourBusiness» или просто «веб-сайт». Вам нужно будет обратиться к этому имени позже.
Новые функции поиска Google касаются AI, чтобы сделать ваш телефон и Android еще умнее
Microsoft не единственная компания использование ИИ для улучшения качества своих услуг , Google, отмечая 20-летие поиска Google, объявил о своих собственных планах использования искусственного интеллекта, в том числе побуждая вас больше взаимодействовать с его ребрендингом, более подробным новостным потоком Discover и другими службами.
4 надежных пакета замены пользовательского интерфейса для оптимизации вашего экрана
TukUI доступен с tukui.org , Установка очень проста: просто вставьте папки в папку дополнений, убедитесь, что при входе в систему отключено все остальное, что изменяет фреймы юнитов, чат или панели действий, и запустите TukUI. Я имею тенденцию отключать все, кроме TukUI, когда в первый раз захожу с ним на новом персонаже, чтобы не испортить его! Он мягко проведет вас через процесс входа в систему при входе в систему для каждого персонажа,
Как расширить рабочий стол вашего Mac на телевизор или iPad
Ваш Mac предоставляет различные способы, чтобы помочь вам хорошо работать в рамках ограничений одного дисплея, но иногда расширение рабочего пространства на второй экран - это просто лучший путь к повышению производительности. Если у вас нет традиционного компьютерного дисплея для подключения с помощью кабеля, вы можете использовать телевизор высокой четкости или устройство iOS. Здесь мы рассмотрим три варианта:
UpNext HD Maps приносит великолепные 3D-карты на iPad - скачать сейчас!
... Google и устройства iOS идут рука об руку с момента выпуска оригинального iPhone в 2007 году, и Apple недавно подписала новое соглашение с поисковым гигантом, предоставляя iOS дополнительный доступ к данным Google Maps.
Как создать трекер расходов с помощью Google Forms и Sheets
Когда ваша «система отслеживания расходов» состоит из множества смятых квитанций и еще нескольких цифровых, спрятанных в вашем почтовом ящике, пришло время для изменений. Многие приложения и службы могут помочь вам отслеживать ваши расходы на лету, но так же легко создать простую, которую вы можете настроить с помощью инструментов Google. Этот метод использования Google Forms с Google Sheets якобы был разработан для сбора и анализа данных опроса, но с несколькими настройками он работает

Комментарии

Получить Microsoft Word бесплатно?
Получить Microsoft Word бесплатно? Многие люди ищут бесплатную загрузку Microsoft Word, чтобы бесплатно получить полную копию программного обеспечения. Можете ли вы использовать Microsoft Word, не платя за это? Ну нет. Хотя существуют бесплатные программы обработки текста
Так какой браузер лучше всего подходит для вашего компьютера с Linux?
Так какой браузер лучше всего подходит для вашего компьютера с Linux? Давайте разберемся. Прочитайте больше , тоже. Привычка Google отслеживание вашего поведения в Интернете Прекратить использование поиска Google: вот почему
Как вы лично получаете доступ к таким сайтам, как Facebook и YouTube?
Как вы лично получаете доступ к таким сайтам, как Facebook и YouTube? Обычно вы можете использовать программу, которая открывается, когда вы нажимаете на большой синий значок «e» на рабочем столе. Вот как это выглядит: Это логотип для Internet Explorer, веб-браузера. Этот значок «е» не является ярлыком для обычной программы «Интернет»
Оператор сайта Google - как им пользоваться?
Оператор сайта Google - как им пользоваться? Давайте начнем с основ. Как мы упоминали в самом начале, оператор site: используется для сосредоточения результатов поиска на одном домене. Этот эффект может быть достигнут путем прямого входа в домен сразу после оператора, не разделяя его пробелом. Например, если мы заинтересованы в результатах поиска, охватывающих только адреса из Allegro.pl, отправка нашего выражения будет выглядеть следующим образом: сайт: allegro.pl

Что еще более важно, в какое время дня ваш сайт работает лучше всего с точки зрения целей или продаж?
Получить Microsoft Word бесплатно?
Можете ли вы использовать Microsoft Word, не платя за это?
Так какой браузер лучше всего подходит для вашего компьютера с Linux?
Как вы лично получаете доступ к таким сайтам, как Facebook и YouTube?
Оператор сайта Google - как им пользоваться?