Sorumluluk Reddi Beyanı
Bu ürün/özellik değişecek ve herhangi bir hizmet düzeyi sözleşmesine (HDS) veya kullanımdan kaldırma politikasına tabi değildir. Uygulama, gelecekteki sürümlerde değişebilir.
Bu dokümana eşlik eden örnek yazılım, veri dosyaları ve/veya kaynak koduyla ilgili olarak: Bu ürün "olduğu gibi" ve herhangi bir garanti olmadan sağlanır. Google, açık, zımni, yasal veya başka türlü her türlü garantiyi (satılabilirlik, belirli bir amaca uygunluk ve bu ürünle ilgili herhangi bir hakkın ihlal edilmemesi garantileri dahil ancak bunlarla sınırlı olmamak üzere) açıkça reddeder.
Android Automotive intent'leri aracılığıyla Google Haritalar'da navigasyonu başlatabilirsiniz.
Daha fazla bilgi için Android için Google Haritalar Intent'leri başlıklı makaleyi inceleyin.
Uygulamanızı Android Auto veya Android Automotive OS çalıştıran araçlara getirme hakkında daha fazla bilgi için Arabalar için Android başlıklı makaleyi inceleyin.
Genel Bakış
Bu sayfada, Android Automotive için Google Haritalar ile kullanabileceğiniz intent'ler açıklanmaktadır. Ayrıntılı Android geliştirici belgeleri için şunları okuyun:
Intent istekleri
Android Automotive için Google Haritalar'ı bir intent ile başlatmak istiyorsanız öncelikle işlemini, URI'sini ve paketini belirterek bir Intent nesnesi oluşturmanız gerekir.
İşlem. Tüm Google Haritalar intent'leri Görüntüle işlemi olarak çağrılır (
ACTION_VIEW
).URI. Google Haritalar intent'leri, istenen işlemi belirten URI kodlanmış dizeler ile bu işlemi gerçekleştirmek için gereken bazı verileri kullanır.
Paket.
setPackage("com.google.android.apps.maps")
çağrısı, Android için Google Haritalar uygulamasının Intent'i işlemesini sağlar. Paket ayarlanmamışsa hangi uygulamaların Intent'i işleyebileceğini sistem belirler. Birden fazla uygulama varsa kullanmak istediğiniz uygulamayı seçmeniz istenebilir.
Intent'i oluşturduktan sonra sistemin ilgili uygulamayı başlatmasını çeşitli şekillerde isteyebilirsiniz. Yaygın bir yöntem, Intent'i [startActivity()]
yöntemine iletmektir. Sistem, gerekli uygulamayı (bu durumda Google Haritalar) başlatır ve ilgili etkinliği başlatır.
// Create a Uri from an intent string. Use the result to create an Intent.
Uri mapIntentUri =
Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
// Create an Intent from mapIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps");
// Attempt to start an activity that can handle the Intent
startActivity(mapIntent);
Sistem, intent'e yanıt verebilecek bir uygulamayı tanımlayamazsa uygulamanız kilitlenebilir. Bu nedenle, bu intentlerden birini kullanıcıya sunmadan önce önce alıcı uygulamanın yüklü olup olmadığını doğrulayın.
Bir uygulamanın intent'i alıp alamayacağını doğrulamak için [Intent]
nesnenizde [resolveActivity()]
işlevini çağırın. Sonuç null değilse intent'i işleyebilecek en az bir uygulama vardır ve [startActivity()]
çağrısının güvenli olduğu anlamına gelir. Sonuç null ise intent'i kullanmamalı ve mümkünse intent'i çağıran özelliği devre dışı bırakmalısınız.
if (mapIntent.resolveActivity(getPackageManager()) != null) {
...
}
Örneğin, Sydney'deki Taronga Hayvanat Bahçesi'ne adım adım yol tarifi başlatmak için aşağıdaki kodu kullanabilirsiniz:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}
URI kodlanmış sorgu dizeleri
Google Haritalar Intent'lerine iletilen tüm dizeler URI kodlamalıdır. Örneğin, "1st & Pike, Seattle" dizesi 1st%20%26%20Pike%2C%20Seattle
olmalıdır.
Dizedeki boşluklar %20
ile kodlanabilir veya artı işaretiyle (+) değiştirilebilir.
Dizelerinizi kodlamak için android.net.Uri parse()
yöntemini kullanabilirsiniz. Örneğin:
Uri mapIntentUri = Uri.parse("google.navigation:q=" + Uri.encode("1st & Pike, Seattle"));
Adım adım navigasyonu başlatma
Belirtilen bir veya daha fazla adrese ya da koordinata adım adım yol tarifleri içeren Google Haritalar navigasyonunu başlatmak için bu niyeti kullanın. Yol tarifleri her zaman kullanıcının mevcut konumundan verilir.
google.navigation:q=a+street+address
google.navigation:q=latitude,longitude
google.navigation:place=placename
Parametreler
Navigasyonu başlatmak için place
veya q
ile birlikte waypoints
'yi kullanın (isteğe bağlıdır).
İsteğe bağlı olarak bir yol işaretini şarj istasyonu olarak işaretlemek için Elektrikli araç gezi planını Google Haritalar'a gönderme başlıklı makaleyi inceleyin.
q
, gezinme aramalarının bitiş noktasını belirler. Bu, bir enlem/boylam veya sorgu biçimli bir adres olabilir. Birden fazla sonuç döndüren bir sorgu dizesiyse ilk sonuç seçilir.place
, uç noktayı eve veya işe ayarlar. Kullanıcının evine gitmek için ev, iş yerine gitmek için iş seçeneğini belirleyin.avoid
, rotanın kaçınmaya çalışması gereken özellikleri belirler.avoid
isteğe bağlıdır ve aşağıdakilerden biri veya daha fazlası olarak ayarlanabilir:- Geçiş ücretleri için
t
- Otoyollar için
h
- Feribotlar için
f
- Geçiş ücretleri için
waypoints
, yol tarifiniq
tarafından belirtilen nihai hedefe yönlendirmek için bir veya daha fazla ara yeri belirtir. Yerleri ayırmak için dikey çizgi karakterini (|
) kullanarak birden fazla yol noktası belirtebilirsiniz. Örneğin,Berlin,Germany|Paris,France
. Gerektiği kadar yol noktası kullanabilirsiniz. Yol işaretleri, URL'de listelendikleri sırayla yola eklenir. Her yol noktası bir adres veya virgülle ayrılmış enlem/boylam koordinatları olabilir. Ayrıca aynı intent'te adresler ve enlem/boylam koordinatları olabilir. Dizeler URL'den kaçan olmalıdır. Bu nedenle, "Berlin,Almanya|Paris,Fransa" gibi yol işaretleriBerlin%2CGermany%7CParis%2CFrance
olarak dönüştürülmelidir.
Örnekler
Bu Intent, Avustralya'nın Sidney kentindeki Taronga Hayvanat Bahçesi'ne adım adım yol tarifi isteğinde bulunur:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Otoyol ücreti ödemeyi veya feribot kullanmayı tercih etmiyorsanız aşağıdaki durumlardan kaçınmaya çalışan bir rota isteğinde bulunabilirsiniz:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Evinize gitmek isterseniz şunu kullanın:
Uri mapIntentUri = Uri.parse("google.navigation:place=home");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Aşağıdaki üç adrese sırayla adım adım yol tarifi başlatmak için nihai hedef olarak Taronga Hayvanat Bahçesi'ni q
, yol işaretleri olarak da Google Sydney ve Sydney Opera Evi'ni girin:
Google Sidney
Sidney Opera Binası
Taronga Zoo, Sidney, Avustralya
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7CSydney+Opera+House");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
q
'e benzer şekilde, yol noktalarından herhangi birini adres yerine virgülle ayrılmış enlem ve boylamla temsil edebilirsiniz. Örneğin, adres yerine Sidney Opera Binası'nın enlem ve boylamını göndererek aynı navigasyonu başlatmak için:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7C-33.856159,151.215256");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Google Haritalar'a elektrikli araç gezi planı gönderme
Bazı hedefleri elektrikli araç (EV) şarj istasyonu olarak belirtmek için bu çok hedefli gezinme amacını kullanın. Çok yol noktası intent'ini genişleten bu intent, sürücülerin elektrikli araç gezi planlama uygulamaları ile Google Haritalar arasında şarj noktası bilgilerini senkronize ederek varış noktalarına ulaşmak için yeterli elektrikli araç pili şarjına sahip olmasına yardımcı olur.
Şarj noktaları için gezi amaçları:
- Ad ve enlem-boylam içermelidir
- İsteğe bağlı olarak, şarj süresini hesaplamak için kullanılacak güç çıkışını içerebilir
Google, konnektör türleri, toplamlar, hızlar ve gerçek zamanlı müsaitlik durumu, desteklenen ödeme yöntemleri ve önemli yer (ÖY) gibi zengin verileri görüntülemek için eşleşen bir şarj istasyonu yeri bulmak amacıyla şarj istasyonu adını ve enlem-boylam bilgisini kullanır. Örneğin, navigasyonun son kısmı için açık otoparklardaki sürüş talimatları, çalışma saatleri, puanlar. Şarj istasyonlarının Google verileriyle iyi eşleştiğinden emin olmak için <brand name>
kullanın (ör. ChargePoint
).
Parametreler
Son varış noktası
Nihai hedef olarak bir şarj istasyonunu ayarlamak için:
q
: Şarj istasyonunun enlem-boylam değerini içermelidir.q_type
:1
, nihai varış noktasının bir şarj istasyonu olduğunu belirtir.q_name
: Son varış noktasının adı.q_type
1
ise gereklidir.q_power_output_kw
: Şarj istasyonunun güç çıkışı için kilovat cinsinden çift haneli sayı. İsteğe bağlı.
Referans Noktaları
Yol işaretleri için tüm parametreler, nihai hedef hariç olmak üzere yol işaretleriyle aynı sıradaki paralel, |-ayrılmış değer dizileridir. Paralel dizilerdeki öğe sayısında uyuşmazlık olması, hatalı biçimlendirilmiş bir intent olarak değerlendirilir.
Bir veya daha fazla şarj istasyonu yol noktası eklemek için aşağıdaki parametreleri kullanın. Bunların tümü isteğe bağlıdır. Hedeflerden biri şarj istasyonu olarak işaretlenmişse bu hedef için yol noktası adı zorunlu hale gelir.
waypoints
: Adım adım navigasyon intent'inde açıklandığı şekilde yol noktalarının listesi. Şarj istasyonu yol noktaları için enlem-boylam değeri olmalıdır.waypoint_types
: Bir sayı olarak belirtilen yol noktası başına tür.0
herhangi bir durak (varsayılan değer) ve1
şarj istasyonudur.waypoint_names
: Yol noktası adları. Bu alan, şarj istasyonları için zorunludur.waypoint_power_outputs_kw
: Şarj istasyonu gücü için kilowatt cinsinden çift sayılar. Şarj istasyonları için isteğe bağlı olarak bir yol noktası güç çıkışı değeri belirtebilirsiniz. Bu değer, eşleşen istasyon bulunamazsa yedek olarak kullanılır. Boş slot, herhangi bir değer sağlanmadığı anlamına gelir.
Kullanıcı deneyimi (UX) davranışı
Birden fazla hedefi olan gezi isteklerinde, rotaya genel bakış ekranı gösterilir ancak navigasyon otomatik olarak başlatılmaz.
Doğru biçimlendirilmiş bir intent için Google Haritalar, seyahat için rotaya genel bakış ekranı gösterir. Rotaya genel bakış ekranında, geçerli olduğu durumlarda şarj önerileriyle birlikte tüm yol noktaları ve intent'teki nihai hedef gösterilir.
Şarj istasyonu olarak işaretlenen tüm yol noktaları veya nihai hedefler için Google Haritalar, Google'ın veritabanında eşleşen bir yer arar.
Eşleşme bulunduğunda Google Haritalar, şarj istasyonunu kullanıcı arayüzünde (UA) görüntülemek ve şarj istasyonu için şarj önerisi sunmak amacıyla Google verilerini kullanır. Eşleşme bulunamazsa bir şarj istasyonu için intent'te sağlanan veriler (enlem-boylam, ad ve güç çıkışı), bu şarj istasyonunu kullanıcı arayüzünde görüntülemek ve bu şarj istasyonunda şarj önerisi sunmak için kullanılır.
Örnekler
Birden fazla şarj istasyonu üzerinden nihai hedefe gitme
Aşağıdaki intent, ChargePoint ve Evie adlı iki şarj istasyonundan geçerek nihai hedef olan Port Macquarie NSW'ye gider.
Sıralı hedefler:
ChargePoint Şarj İstasyonu (konum: -32.9599188,151.6240806, güç çıkışı: 6,6 kw)
Evie Şarj İstasyonu (konum: -31.9432539,152.4699808, güç çıkışı: 350 kw)
Port Macquarie NSW
Uri mapIntentUri =
Uri.parse(
"google.navigation:q=Port+Macquarie+NSW"
+ "&waypoints=-32.9599188%2C151.6240806%7C-31.9432539%2C152.4699808"
+ "&waypoint_types=1%7C1"
+ "&waypoint_names=ChargePoint+Charging+Station%7CEvie+Charging+Station"
+ "&waypoint_power_outputs_kw=6.6%7C350");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Bilinmeyen güç çıkışı
Güç çıkışı değeri bilinmiyorsa waypoint_power_outputs_kw
ile ilgili ilgili alanı boş bırakın. Tüm yuvalar boşsa waypoint_power_outputs_kw
parametresini belirtmeniz gerekmez.
Sıralı hedefler:
ChargePoint Şarj İstasyonu (konum: -32.9599188,151.6240806, güç çıkışı: bilinmiyor)
Port Macquarie NSW
Uri mapIntentUri =
Uri.parse(
"google.navigation:q=Port+Macquarie+NSW"
+ "&waypoints=-32.9599188%2C151.6240806"
+ "&waypoint_types=1"
+ "&waypoint_names=ChargePoint+Charging+Station");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Nihai varış noktasını şarj istasyonu olarak işaretleme
Nihai varış noktasını şarj istasyonu olarak işaretlemek için q_type
, q_name
ve q_power_output_kw
parametrelerini belirtin.
Sıralı hedefler:
Taronga Zoo, Sidney, Avustralya
ChargePoint Şarj İstasyonu (konum: -32.9599188,151.6240806, güç çıkışı: bilinmiyor)
Evie Şarj İstasyonu (konum: -31.9432539,152.4699808, güç çıkışı: 350 kw)
Uri mapIntentUri =
Uri.parse(
"google.navigation:q=-31.9432539,152.4699808&q_type=1&q_name=Evie+Charging+Station&q_power_output_kw=350"
+ "&waypoints=Taronga+Zoo%2C+Sydney+Australia%7C-32.9599188%2C151.6240806"
+ "&waypoint_types=0%7C1"
+ "&waypoint_names=%7CChargePoint+Charging+Station"
+ "&waypoint_power_outputs_kw=%7C");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);