由于新的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);
答案 0 :(得分:2)
需要检查三件事。
设备是否安装了Google服务:
switch (GooglePlayServicesUtil.isGooglePlayServicesAvailable(this)) {
case ConnectionResult.SUCCESS:
//Device has Google play services installed
break;
default:
break;
}
支持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;
}
验证API密钥是否正确 一世。密钥是否通过正确的调试密钥和包生成 II。通过'Google Maps Android API v2'生成的密钥不'Google Maps API v2'