android maps api V2是否需要启用后台数据?

时间:2012-12-04 00:52:51

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

由于新的Google Maps Android API V2需要Google Play服务,是否需要启用“背景数据”才能运行地图应用?当我不需要它时,我习惯关闭背景数据,因为它会快速杀死电池,我不希望我的应用程序要求启用它。

更新:花了一天时间试图研究这个:
- 安装Android支持库和Google Play服务SDK(哦,看,已经有针对第3版的更新)。 - 导入https://developers.google.com/maps/documentation/android/intro#sample_code>中引用的示例代码。
- 获取新的map v2 API密钥,并将其放入AndroidManifest.xml中 - (重新)配置示例代码,然后运行/调试它 由于Play服务需要无法内置到模拟器中的软件,演示应用程序将无法在模拟器上运行,并且似乎需要做很多工作才能解决这个问题,可能还有其他时间。所以我用它上面的Froyo运行三星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 was unloaded and GLES 1.1 API was successfully unmapped
    12-04 19:50:34.557: I/(18909): libGLESv1_CM_fimg.so was loaded and GLES 1.1 API was successfully mapped
    12-04 19:50:34.562: I/(18909):
12-04 19:50:34.562: I/(18909): [Chunk Allocator] 1 blocks (block size:0x100000) 12-04 19:50:34.562: I/(18909):
12-04 19:50:34.562: I/(18909): =======Chunk::PrintChunkBlckInfo ====== 12-04 19:50:34.562: I/(18909):
12-04 19:50:34.562: I/(18909): ------------------------------------------------------ 12-04 19:50:34.562: I/(18909): [0] use flag: 1, start: 0, size: 1048576, next: 0x0 12-04 19:50:34.562: I/(18909):
12-04 19:50:34.562: I/(18909): ------------------------------------------------------ 12-04 19:50:34.562: I/(18909): Total Texture Size 0 Byte 0 KB Total Texture Count 0 12-04 19:50:34.562: I/(18909):
12-04 19:50:34.562: I/(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的一个问题。

1 个答案:

答案 0 :(得分:2)

需要检查三件事。

  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'生成的密钥'Google Maps API v2'enter image description here