Google地图组件(com.google.android.gms.maps.GoogleMap)允许用户呈现自定义瓦片(OpenStreetMap或其他)。这些瓦片可以在设备上,并且可以离线使用,我通过扩展TileProvider来实现这一点。与此同时:
mMap.setMapType(GoogleMap.MAP_TYPE_NONE);
我没有从Google地图服务器获取任何数据,并且可以合理地期望该组件在没有互联网连接的情况下正常工作。 (我在此强调 我不会尝试缓存 Google 的数据;我是独立于 Google 地图服务器使用离线瓦片工作的。)
我以为一切都很好,直到我意识到,如果设备在首次执行时处于离线状态,地图组件将无法工作。在这种情况下,我会收到一条消息:
加载地图失败。无法联系 Google 服务器
我想原因是Google的API密钥需要我的应用程序进行身份验证,以允许组件执行。
有人能确认这是正确的吗?我真正想确定的是,只要组件在在线状态下执行一次,之后就可以正常运行。我必须确保没有超时问题需要在以后重新验证组件,否则这将使我的应用程序无用。那将需要我转向其他组件(例如OS Android)。
非常感谢任何对此的解答,甚至指出我可以希望从哪个渠道得到 Google 开发者的回复也很有用。
谢谢。