android - 我可以构建一个适用于具有和不具有谷歌地图功能的手机的应用程序吗(允许用户使用 map 和其他人排除此功能)

标签 android google-maps gps android-manifest android-internet

我正在构建一个具有多种实用功能的应用程序。一项 Activity 使用谷歌地图。我能否做到这一点,以便用户可以根据需要使用此功能,但将其排除在无法使用它的旧手机之外(类似于在线或离线玩视频游戏的方式)?我感到困惑的真正原因是因为我必须在整个应用程序的 list 中声明它(如果用户没有 map 功能,我有没有办法排除某个 Activity ?)。我也将需要 gps 用于 map Activity ,但我不想将此应用程序限制为仅具有这些高级功能的手机,因为其他 Activity 要简单得多。

最佳答案

The real reason im confused is because i have to declare this in the manifest for the entire app (is there a way for me to just exclude a certain activity if users dont have map functionality?)

你可以把android:required="false"在你的<uses-library>元素。然后,在运行时,检查是否 MapActivity存在。如果是,则您拥有 Google Maps SDK 附加组件,您可以启动 MapActivity子类。如果MapActivity不存在,做点别的。

下面是一个示例项目,演示了这一点:https://github.com/commonsguy/cw-omnibus/tree/master/Maps/NooYawkMapless

list 有:

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

启动器 Activity 是:

package com.commonsware.android.maps;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

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();
  }
}

关于android - 我可以构建一个适用于具有和不具有谷歌地图功能的手机的应用程序吗(允许用户使用 map 和其他人排除此功能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498192/

相关文章:

android - 编译针对 API 23 Android Marshmallow 的 Google 下载库

c# - 在 Google Tile Server 中平铺(x、y 和 z 参数)

javascript - 未调用地理编码回调

java - LibGDX And​​roid 发布

java - 单击按钮时应用程序崩溃

java - 尝试使用 Android "Parsing XML Data"代码不起作用 : "Error parsing XML"

javascript - 单击另一个标记时关闭信息窗口

android - 在android 2.1中获取gps坐标的问题(找到答案)

blackberry - 如何在没有 GPS 的情况下在 Blackberry OS 5 上获取地理位置

Android - 获取 GPS 信号需要很长时间。如何实现一个好的GPS供应商?