我正在尝试在Android Studio上创建一个应用程序,该应用程序将通过单击具有指定经度和纬度的按钮来打开谷歌地图。它在Android模拟器上可以正常工作,但是当我在手机上尝试该应用程序后,单击该应用程序将停止工作在应该打开谷歌地图的按钮上。这是该程序的onClick()函数内部的代码段。
Uri uri=Uri.parse("geo:19.1500810,72.88.4537281");
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
intent.setPackage("com.google.android.apps.maps");
startActivity(intent);
Google地图应打开并显示上面指定的纬度和经度的大头针位置,但是当我单击按钮时,该应用程序将停止工作。
答案 0 :(得分:0)
您是否尝试过使用此方法:
String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
context.startActivity(intent);
让我知道它是否有效!
答案 1 :(得分:0)
尝试一下,并更新位置详细信息
private void openlocation() {
String addressstring = "CA";
Uri.Builder builder = new Uri.Builder();
builder.scheme("geo");
builder.path("0,0");
builder.query(addressstring);
Uri Adduri = builder.build();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Adduri);
if (intent.resolveActivity(getPackageManager())!=null){
startActivity(intent);
}
}
尝试后请让我知道
答案 2 :(得分:-1)
最好不要指定包名,我使用以下代码打开地图
String longitude = "";
String latitude = "";
String label = "";
String uriBegin = "geo:" + latitude + "," + longitude;
String query = latitude + "," + longitude + "(" + label + ")";
String encodedQuery = Uri.encode(query);
String uriString = uriBegin + "?q=" + encodedQuery + "&z=16";
Log.e(TAG, uriString);
Uri uri = Uri.parse(uriString);
Intent mapIntent = new Intent(android.content.Intent.ACTION_VIEW, uri);
startActivity(mapIntent);