2014-09-04 32 views
11

Birkaç benzer gönderi var ancak tam olarak bulamadım. temel olarak, hem Google haritaları hem de Waze'i aynı amaçla açmak istiyorum. İlk başta bu çalıştı:Hem Waze hem de Google haritalarının açılmasına yönelik Android amacı

Waze doğru konuma doğrudan navigasyon ve Google haritaları doğru yerde açılan
final String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude); 
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
startActivity(intent); 

. o zaman fark ettim ki, Google haritaları konumun üzerine bir iğne koymuyor, bu yüzden kullanıcının tam olarak nerede olduğunu bilmesi zor. Bu yüzden etrafına baktı ve bunun için "? Q = .. (etiket)" Google haritaları gerektirdiğini fark ... Ben hiç uri inşaat değiştirdi:

final String uri = String.format(Locale.ENGLISH, "geo:%f,%f?q=%f,%f (%s)", latitude, longitude, latitude, longitude, name); 

Ama sonra Waze 2 şey yaptı: gittiğiniz doğru yerde VE etiket üzerinde bir arama çalıştırın. Bu, kullanıcının arama sonuçları ekranını kapatmak için geri düğmesini tıklatmasını ve doğru yerde gezinme ile kalmasını gerektirdi.

Her yere bir cevap için baktım ama her ikisine de ulaşacak bir çözüm bulamadı. İlk başta bunun mümkün olmadığını düşündüm ve Waze'in bir hatası var ... ama sonra Facebook'taki mesajın istediğim şeyi yaptığını fark ettim. Bir konumun bulunduğu bir iletiye tıklandığında her iki uygulamayı da açacaktır: Google haritalarının bir pini (bir etiketle) olacak ve Waze bir arama yapmadan doğrudan bu konuma gidecek.

Yukarıdakiler hakkında birkaç soru: 1. (Elbette) Bunu nasıl başarabilirim? 2. Facebook habercinin niyetinin nasıl inşa edildiğini nasıl bilebilirim? (Her halükarda yakalayabilir miyim) 3. Etiketin sadece "? Q = .." ile yapılmasının sebebi nedir?

Teşekkürler

+0

Waze ile Google Haritalar arasında seçim yapmasını isteyen kodu gönderir misiniz? –

cevap

16

Boşver. Aşağıda uygulaması ile Facebook messenger kesmek başardı ve şöyle URI olması gerektiğini düşündüm:

String.format(Locale.ENGLISH, "geo:0,0?q=") + android.net.Uri.encode(String.format("%[email protected]%f,%f", label, latitude, longitude), "UTF-8"); 

app: Ben Nemrut'un en uç ardından https://play.google.com/store/apps/details?id=uk.co.ashtonbrsc.android.intentintercept&feature=search_result#?t=W251bGwsMSwyLDEsInVrLmNvLmFzaHRvbmJyc2MuYW5kcm9pZC5pbnRlbnRpbnRlcmNlcHQiXQ ..

Teşekkür

+0

Teşekkürler - tam olarak bu sorunla bana yardımcı oldu! – Kibi

+0

Bu yalnızca etiketin adresi tutuyorsa çalışır :(Sadece Waze etiketini kaldırırsanız ve sadece etiketiniz varsa etiketiniz google haritalarına giderse – bentzy

+0

Waze bana etiketle gidebilir, belki farklı bir probleminiz var .. . –

2

ve uygulamayı yükledim ve whatsapp'ın konum özelliğinden gelen amacı yakaladı. İşte haritalar ve waze üzerinde test edilen tam Niyet:

String uri = "http://maps.google.com/maps?q=loc:"+latitude+","+longitude+" ("+label+")"; 
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); 
intent.setFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
intent.setData(Uri.parse(uri)); 
startActivity(intent); 
İlgili konular