【问题标题】:App is shutting down when Maps isn't installed未安装地图时应用程序正在关闭
【发布时间】:2014-03-06 12:21:35
【问题描述】:

当我单击地图链接时,我的应用程序正在关闭,因为没有安装地图应用程序。我如何在应用程序启动时发出警告,他们无法在未安装地图应用程序的情况下使用地图。

谢谢,

【问题讨论】:

  • 发布你的代码,我会告诉你该怎么做?
  • 不需要我的代码。我需要一个脚本,当没有安装地图应用时,该脚本会在应用启动时发出警报。
  • 无知..给个简单的解释。这里的地图应用程序是指谷歌地图还是什么?

标签: java android eclipse android-activity maps


【解决方案1】:

你需要创建一个这样的方法

public boolean isPackageExisted(String targetPackage) {
    PackageManager pm = getPackageManager();
    try {
        PackageInfo info = pm.getPackageInfo(targetPackage,
                PackageManager.GET_META_DATA);
    } catch (NameNotFoundException e) {
        return false;
    }
    return true;
}

然后通过这个检查

if (isPackageExisted("com.google.android.maps")) {
    // Map application is available
 } else {
    // Map application is not available
 }

【讨论】:

    【解决方案2】:

    当我点击地图链接时。我的应用程序正在关闭,因为没有安装地图应用程序。

    如果此“链接”正在触发 ACTION_VIEW Intent,可能在 geo Uri 上,则创建 Intent 并使用 PackageManagerresolveActivity() 来查看设备上的某些内容是否会处理它。如果resolveActivity() 返回null,你就知道startActivity() 对应的Intent 会崩溃,所以你可以采取适当的措施。

    【讨论】:

      【解决方案3】:

      尝试:

      if(isGoogleMapsInstalled){
      //do your job
      }else{
      //display toast or whatever you want
      }
      
      public boolean isGoogleMapsInstalled()
      {
          try
          {
              ApplicationInfo info = getPackageManager().getApplicationInfo("com.google.android.apps.maps", 0 );
              return true;
          } 
          catch(PackageManager.NameNotFoundException e)
          {
              return false;
          }
      }
      

      【讨论】:

      • 仅当 if(isGoogleMapsNotInstalled) // 显示 toast 时如何执行此操作
      • 吐司面包 = Toast.makeText(getApplicationContext(), "请安装谷歌地图应用程序...", Toast.LENGTH_LONG);面包.show();finish();
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 2017-12-15
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 2015-01-11
      • 2016-06-16
      相关资源
      最近更新 更多