1

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

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

首先,我在 AndroidManifest.xml 中为地图库添加一个属性 'required="false"'

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

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

4

1 回答 1

2

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

如果您打算使用 Google Maps V2(并且您应该因为 V1 将在 3 月停止工作),有一种方法可以检查 Google Play 服务是否可用http://developer.android.com/google/play-services/setup。 html

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

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

于 2013-01-31T11:43:18.397 回答