2017-12-26 4 views
1


私のアプリケーションに問題があります。私はコードロケーションで定義されたGoogleマップを開きたいので、データをインテントに設定しますが、マップは常に(コード1で指定されたものではなく)自分のロケーションで開きます。地図インテントが指定された場所を表示しない

String addressString = "1600 Amphitheatre Parkway, CA"; 

Uri locationUri = new Uri.Builder(); 
     .scheme("geo") 
     .path("0,0") 
     .query(addressString); 
     .build(); 

Intent mapIntent = new Intent(Intent.ACTION_VIEW, locationUri); 
mapIntent.setPackage("com.google.android.apps.maps"); 

if(intent.resolveActivity(getPackageManager()) != null) 
    startActivity(mapIntent); 


誰もがこのような状況に対処する方法を知っています:

ここでは、コードのですか?私は自分の電話機と仮想デバイスを試しましたが、両方で動いていません。

答えて

1

変更query(addressString)appendQueryParameter("q", addressString)にし、あなたはあなたが望むものを豊かにするでしょう:

Uri locationUri = new Uri.Builder() 
     .scheme("geo") 
     .path("0,0") 
     .appendQueryParameter("q", addressString) 
     .build(); 
+0

ああ、ありがとうロット、それは今動作します! – Bartek

+1

@Bartekあなたは私の答えを受け入れることができますか?それは他のユーザーが正しい答えを見つけるのを助けるかもしれない –

+0

問題はない、完了! ;) – Bartek

1

はそれを緯度と経度を開くには、この方法を使用します。

double lat = YOUR_LATITUDE; 
double lng = YOUR_LONGITUDE; 
String placeLabel = YOUR_PLACE_LABEL; 
String uri = String.format(Locale.ENGLISH, "geo:%f,%f?q=%f,%f(%s)", lat, lng, lat, lng, placeLabel); 
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
startActivity(intent); 

あなたはアドレスを使用してマップを開きたい場合は、とデURIを置き換える:

geo:0,0?q=my+street+address 
+0

最初のヒントをありがとう! アドレスだけでなく、Uri.Builderを使用していて、「.appendQueryParameter」の代わりに「.query」を使用していて、今は動作していませんでした。 – Bartek

関連する問題