【问题标题】:Does android maps api V2 need background data enabled?android maps api V2 是否需要启用后台数据?
【发布时间】:2012-11-21 13:53:51
【问题描述】:

由于新的 Google Maps Android API V2 需要 Google Play 服务,是否需要启用“后台数据”才能运行地图应用?我习惯于在不需要时关闭后台数据,因为它会很快耗尽电池电量,而且我不希望我的应用要求启用它。

更新:花了一天时间试图研究这个:
- 安装 Android 支持库和 Google Play 服务 SDK(哦,看,已经有 rev. 3 的更新可用)。 - 导入https://developers.google.com/maps/documentation/android/intro#sample_code> 引用的示例代码。
- 获取新的地图 v2 API 密钥,并将其放入 AndroidManifest.xml
- (重新)配置示例代码,并运行/调试它。
演示应用程序不会在模拟器上运行,因为 Play 服务需要无法内置到模拟器中的软件,而且似乎需要做很多工作来解决这个问题,也许其他时间。所以我在带有 Froyo 的 Samsung Intercept 上运行了演示。 SupportMapFragment 和/或 com.google.android.gms.maps.MapView 代码让我开始更新 Google Play 服务 APK。为此,我需要启用“背景数据”(这是最初的问题)。之后,该应用程序允许我选择各种地图演示,但它们都没有显示地图。
LogCat 显示:

 12-04 19:50:28.937: I/(18909): =======Chunk::PrintChunkBlckInfo ======
    12-04 19:50:28.937: I/(18909): libGLESv1_CM_fimg.so 已卸载并且 GLES 1.1 API 已成功取消映射
    12-04 19:50:34.557: I/(18909): libGLESv1_CM_fimg.so 已加载并且 GLES 1.1 API 已成功映射
    12-04 19:50:34.562: 我/(18909):
12-04 19:50:34.562: I/(18909): [块分配器] 1 个块(块大小:0x100000) 12-04 19:50:34.562: 我/(18909):
12-04 19:50:34.562: I/(18909): =======Chunk::PrintChunkBlckInfo ====== 12-04 19:50:34.562: 我/(18909):
12-04 19:50:34.562:我/(18909):------------------------ ------------------ 12-04 19:50:34.562: I/(18909): [0] 使用标志:1,开始:0,大小:1048576,下一个:0x0 12-04 19:50:34.562: 我/(18909):
12-04 19:50:34.562:我/(18909):------------------------ ------------------ 12-04 19:50:34.562: I/(18909): 总纹理大小 0 字节 0 KB 总纹理计数 0 12-04 19:50:34.562: 我/(18909):
12-04 19:50:34.562:我/(18909):------------------------ ------------------ 12-04 19:50:34.937: E/(18909): glCompressedTexImage2D(0xde1, 0, 0x8b96, 32, 8, 0, 1280, 0x0x369c70); 12-04 19:50:34.942: E/(18909): glCompressedTexImage2D(0xde1, 0, 0x8b96, 32, 8, 0, 1280, 0x0x379b90); 12-04 19:50:34.962: E/(18909): glCompressedTexImage2D(0xde1, 0, 0x8b96, 16, 1, 0, 1040, 0x0x347ac0);


所以现在,我仍然没有明确的答案,也不知道地图不显示的原因是否是我的密钥生成/插入问题(在 LogCat 中没有任何说明),或者(更有可能?)OpenGL的问题。

【问题讨论】:

    标签: android google-maps google-play-services google-maps-android-api-2


    【解决方案1】:

    这三件事需要检查。

    1. 设备是否安装了 Google 服务:

      switch (GooglePlayServicesUtil.isGooglePlayServicesAvailable(this)) {
      case ConnectionResult.SUCCESS:
          //Device has Google play services installed
          break;
      
      default:
          break;
      }
      
    2. 是否支持 OpenGL ES 2.0

      private boolean checkGL20Support(Context context) {
      EGL10 egl = (EGL10) EGLContext.getEGL();
      EGLDisplay display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
      
      int[] version = new int[2];
      egl.eglInitialize(display, version);
      
      int EGL_OPENGL_ES2_BIT = 4;
      int[] configAttribs = { EGL10.EGL_RED_SIZE, 4, EGL10.EGL_GREEN_SIZE, 4,
              EGL10.EGL_BLUE_SIZE, 4, EGL10.EGL_RENDERABLE_TYPE,
              EGL_OPENGL_ES2_BIT, EGL10.EGL_NONE };
      
      EGLConfig[] configs = new EGLConfig[10];
      int[] num_config = new int[1];
      egl.eglChooseConfig(display, configAttribs, configs, 10, num_config);
      egl.eglTerminate(display);
      return num_config[0] > 0;
      }
      
    3. 验证 API 密钥是否正确 一世。密钥是否通过正确的调试密钥和包生成 ii.通过 'Google Maps Android API v2' NOT 'Google Maps API v2'

    4. 生成的密钥

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 1970-01-01
      • 2013-03-24
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多