如何开发包含和不包含GMS的Android设备上运行的应用程序?

时间:2012-04-26 09:58:23

标签: android maps google-play-services

我想开发一个包含地图功能并在Android OS上运行的应用程序。 我的问题是这个应用程序如何在没有谷歌地图库的Android设备上运行?

例如, 有一个活动包含一些片段,其中一个片段包括地图特征。在这种情况下,活动“必须”扩展地图库中的MapActivity。这对于使用GMS的设备没有问题,但是没有GMS的设备呢?

首先,我为AndroidManifest.xml中的地图库添加了一个'required =“false”'属性

<uses-library android:name="com.google.android.maps" 
    android:required="false"/>

如果设备中没有地图库,则活动不使用地图片段。 但是活动扩展了MapActivity,MapActivity在地图库中。 当设备具有地图库时,此活动如何扩展MapActivity,而当设备没有时,如何扩展活动?

1 个答案:

答案 0 :(得分:1)

您可以通过两个不同的类来扩展MapFragment,一个扩展Fragment或Activity,然后检查Google Play服务的可用性来实现这一点。

如果您打算使用Google地图V2(并且您应该从3月开始停止工作),则可以检查Google Play服务是否可用http://developer.android.com/google/play-services/setup.html

确定Google Play服务是否可用后,您可以实例化扩展MapFragment的活动或扩展活动的活动。

当然,通用功能将在类之间共享,在这种情况下,由于继承不可用,您必须通过组合来完成。