并不是所有的Android真机中都带有Google Map add-on,要想内置Google Map add-on是需要和google商谈的。

但是若我们开发一个使用到了Google Map add-on的Android应用程序(即使用了<uses-library android:name="com.google.android.maps" />),就会发现这个程序不能成功安装在没有内置Google Map add-on的真机中,那么我们有什么办法来解决这个问题呢?


方法有两个:

1)维护两条代码分支:
一条分支是针对于内置有Google Map add-on的Android真机,另一条分支是没有内置有Google Map add-on的Android真机。
但是这样做会增加维护成本,而且粗心的用户可能会在自己的机器上安装了不匹配的分支,从而降低了软件的友好度。

2)仍然只保留一条代码分支:
国外一位大牛指出:在<uses-library>标签中还包含了一个没有公布的属性"android:required",你可以将com.google.android.maps库的这个属性设置为false,即:

<!-- The "android:required" attribute was added in API level 5 (Android 2.0) -->
<uses-library android:name="com.google.android.maps" android:required="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]http://stackoverflow.com/questions/3909903/disable-mapview-if-it-is-not-supported
[2] http://androidforums.com/application-development/140147-does-all-android-devices-support-map-api.html

更多相关文章

  1. Android下Activity全屏显示实现方法
  2. 利用HTML5开发Android
  3. Android高手进阶教程(七)之----Android(安卓)中Preferences的使
  4. 25、Android中通过Intent传递对象、集合问题
  5. 原生Android也能做Web开发了
  6. 使用android studio 查看 android 的源代码
  7. Android(安卓)Studio和Eclipse快捷键对比,及快捷键列表
  8. 初试Android高性能编程OpenCL
  9. Android高手进阶教程(七)之----Android(安卓)中Preferences的使

随机推荐

  1. 四极管: 微软的移动战略:抽血Android实现三
  2. 上海靠谱社交公司职位:大前端负责人(对标阿
  3. 【精品推荐】200多种Android动画效果的强
  4. Android进程保活的一般套路
  5. Android(安卓)Studio导入Project、Module
  6. Android(安卓)仿微信之界面导航篇(一)
  7. Android(安卓)高手进阶,自定义圆形进度条
  8. Android打造一个高性能无限层级显示的树
  9. Android(安卓)RxJava使用介绍(二) RxJava的
  10. android 创建别名资源