Android Studio:App从Google Maps打开时停止工作

时间:2019-07-19 19:19:36

标签: android

我正在尝试在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地图应打开并显示上面指定的纬度和经度的大头针位置,但是当我单击按钮时,该应用程序将停止工作。

3 个答案:

答案 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);