当前位置:操作系统 > 安卓/Android >>

如何在Android真机上检测是否有Google Map add-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,即:

Java代码 
<!-- 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是否可用,举例如下:
Java代码 
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); 

 

作者“multiarrow”
 

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,