从谷歌地图回来时恢复我的申请

时间:2017-04-08 17:07:37

标签: android cordova google-maps android-activity

我想在谷歌地图中显示一个位置,因为我使用了以下代码:

    String geo = maindata.getString("map");
    String uri = String.format(Locale.ENGLISH, geo, "", "");
    final Intent intent1 = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
    try {
       cordova.getActivity().runOnUiThread(new Runnable() {
         public void run() {
cordova.getActivity().startActivity(intent1);
}
     });
   }catch(Exception e){
        e.printStackTrace();
   }

谷歌地图应用程序正在启动,它也显示正确的位置, 但问题是,当按下后退按钮然后重新启动我的应用程序。

而我想从午餐位置恢复

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码段在Google地图上显示特定位置:

Uri gmmIntentUri = Uri.parse("google.navigation:q=" + lattitude+ ","
                            + longitude+ "+&mode=d");
                    Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
                    if (isAppInstalled("com.google.android.apps.maps")) {

                        mapIntent.setClassName("com.google.android.apps.maps",
                                "com.google.android.maps.MapsActivity");
                    }
                    startActivity(mapIntent);

此处纬度和经度属于您要在地图上显示的位置。

 /**
 * helper function to check if Maps is installed
 **/


 private boolean isAppInstalled(String uri) {
        PackageManager pm = mActivity.getPackageManager();
        boolean app_installed = false;
        try {
            pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
            app_installed = true;
        } catch (PackageManager.NameNotFoundException e) {
            app_installed = false;
        }
        return app_installed;
    }

在谷歌地图用户的背面按下将重定向到启动谷歌地图的同一活动。

答案 1 :(得分:0)

您必须将活动置于堆栈的底部,然后启动Google地图应用活动

执行以下操作:

        String geo = maindata.getString("map");
String uri = String.format(Locale.ENGLISH, geo, "", "");
final Intent intent1 = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
try {
     TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
    stackBuilder.addParentStack(MainActivity.class); //Instead Of MainActivity you can add your Launching activity Name
    stackBuilder.addNextIntent(intent1);
   cordova.getActivity().runOnUiThread(new Runnable() {
     public void run() {
    startActivity(intent1);
 }
      });
    }catch(Exception e){
    e.printStackTrace();
   }