如何在Android真机上检测是否有GoogleMapadd-on

并不是所有的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
=newIntent();
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. ListView之setEmptyView的问题
  2. Android如何代码混淆
  3. android studio系列之使用指南
  4. android 实用代码片段整理
  5. [代码分享] 乐淘Android客户端源码
  6. 如何使用Android(安卓)Studio开发/调试Android源码
  7. android:required="false"
  8. 在Ubuntu上下载编译安装Android最新内核源代码
  9. Android设置Settings:PreferenceFragment【4】

随机推荐

  1. android_error
  2. 在android真机上使用sqlite3
  3. 《Android/OPhone 开发完全讲义》已出版,
  4. Android 中文 API (23) ―― MultiAutoComp
  5. 启动emulator出错
  6. Android设置多个闹钟
  7. 64位win7操作系统 Android(安卓)开发环境
  8. android时区的初始化
  9. Android(安卓)Studio SDK 各版本下载方法
  10. Android客户端对服务端返回的xml文件内容