判断手机是否已安装google map
需求是这样的:如果手机已安装google map,通过google map打开google地图;否则通过浏览器打开google地图(无论是否已安装其它地图程序)。 网上比较普遍的判断方法是通过Class.forName判断有没有这个类: try { Class.forName("com.google.android.maps.MapActivity"); } catch (Exception e) { return; } 例如这个如何在Android真机上检测是否有Google Map add-on 国外一位大牛指出:在标签中还包含了一个没有公布的属性"android:required",你可以将com.google.android.maps库的这个属性设置为false,即: 这代表如果在目标机器上内置了Google Map add-on,则可以正常使用应用;如果目标机器没有内置Google Map add-on,也可以成功安装应用。但是开发人员需要在代码中自行判断Google Map add-on是否可用。 try { Class.forName("com.google.android.maps.MapActivity"); } catch (Exception e) { Toast.makeText(MainActivity.this, "Oop! google地图不可用", Toast.LENGTH_SHORT).show(); return; } Intent intent = new Intent(); intent.setClass(MainActivity.this, MyMapActivity.class); startActivity(intent); 但是这种方法在有些版本的系统上不生效。后来一朋友说他们是这样实现的: 1.首先定义一个方法isIntentAvailable(Intent intent);用来判断有没有这个intent要”启动的“应用。 private boolean isIntentAvailable(Intent intent) { List<ResolveInfo> activities = getPackageManager().queryIntentActivities(intent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); return activities.size() != 0; } 2.然后调用判断即可。 Intent intent = new Intent(Intent....