可以选择要求Google Maps API支持吗?

Mar*_*man 2 android google-maps android-manifest

我有一个适用于我公司的大型Android应用程序,我们大量使用google maps api来显示位置,包括使用叠加层的活动.现在问题是支持低端Android平板电脑.由于大多数人不支持谷歌地图,我们的应用程序甚至不会安装在他们身上.是否有可能告诉清单只有在设备上可用时才需要google maps api?如果不可用,我会禁用映射功能.

Com*_*are 6

是否有可能告诉清单只有在设备上可用时才需要google maps api?

是.包含android:required="false"<uses-library>您要求使用Google地图的元素中.然后,您可以使用反射来查看MapActivityDalvik VM中是否存在,如果存在,您可以使用支持地图的设备,并可以安全地启动地图.如果它不存在,则需要禁用映射功能.

下面是一个演示此示例的示例应用程序,其中包含一个MapDetector LAUNCHER活动,该活动可以查看是否MapActivity存在,然后将控制转发到实际MapActivity实现,或者Toast如果应用程序在非Google Maps设备上运行,则会引发一个活动.

以下是该MapDetector项目的活动实施:

public class MapDetector extends Activity {
  @Override
  public void onCreate(Bundle instanceState) {
    super.onCreate(instanceState);

    try {
      Class.forName("com.google.android.maps.MapActivity");
      startActivity(new Intent(this, NooYawk.class));
    }
    catch (Exception e) {
      Toast
            .makeText(this,
                       "Google Maps are not available -- sorry!",
                       Toast.LENGTH_LONG)
            .show();
    }

    finish();
  }
}
Run Code Online (Sandbox Code Playgroud)