使用Android Google Maps API v2作为离线瓦片的查看器:是否可能?

13

Google地图组件(com.google.android.gms.maps.GoogleMap)允许用户呈现自定义瓦片(OpenStreetMap或其他)。这些瓦片可以在设备上,并且可以离线使用,我通过扩展TileProvider来实现这一点。与此同时:

mMap.setMapType(GoogleMap.MAP_TYPE_NONE);

我没有从Google地图服务器获取任何数据,并且可以合理地期望该组件在没有互联网连接的情况下正常工作。 (我在此强调 我不会尝试缓存 Google 的数据;我是独立于 Google 地图服务器使用离线瓦片工作的。)

我以为一切都很好,直到我意识到,如果设备在首次执行时处于离线状态,地图组件将无法工作。在这种情况下,我会收到一条消息:

加载地图失败。无法联系 Google 服务器

我想原因是Google的API密钥需要我的应用程序进行身份验证,以允许组件执行。

有人能确认这是正确的吗?我真正想确定的是,只要组件在在线状态下执行一次,之后就可以正常运行。我必须确保没有超时问题需要在以后重新验证组件,否则这将使我的应用程序无用。那将需要我转向其他组件(例如OS Android)。

非常感谢任何对此的解答,甚至指出我可以希望从哪个渠道得到 Google 开发者的回复也很有用。

谢谢。


即使只是指出我可以从哪个渠道获得谷歌开发人员的回复也会很有用。-- http://code.google.com/p/gmaps-api-issues/issues/list - CommonsWare
感谢您的评论。我被指出的问题非常有用。 - guibar
寻找更好的解决方案?我遇到了完全相同的问题。我正在将我的应用程序侧载到可能永远没有互联网访问的手机上,如果我不打算使用地图,那么验证API密钥似乎是荒谬的。 - lostintranslation
@lostintranslation - 我现在也遇到了同样的问题 - 你解决了这个问题吗? - alena_fox_spb
1个回答

9

1
感谢您提供这个有用的答案。尽管我阅读了您指出的问题,但我仍然有疑问。他们说:“最新的Google Play服务APK(3.0.27)应该已经解决了这个问题。当应用程序首次加载时仍需要互联网连接,但在没有连接的情况下稍后打开应用程序并使用地图不再有问题。”通过“首次加载”,他们是指第一次运行还是只需使用连接安装即可?在我的情况下,似乎需要先运行应用程序。 - guibar
1
第一次运行需要联网。 - MaciejGórski
Google员工可以通过以下方式来改进:1)不强制验证,这对使用MAP_TYPE_NONE时非常有用;2)Google Play服务APK可以潜入正在安装的应用程序中,并在发现使用地图或任何其他API的应用程序后,在安装后立即验证API密钥 - 这通常是你有互联网连接的时候。或许可以在gmaps-api-issues上提出此类功能请求? - MaciejGórski
谢谢,这个需求很烦人。我会提出一项类似的功能请求。 - guibar
2
这里有一个问题,有人写了。如果您想看到这个问题得到解决,请点击“星标”。https://code.google.com/p/gmaps-api-issues/issues/detail?id=5496&sort=-stars&colspec=ID%20Type%20Status%20Introduced%20Fixed%20Summary%20Internal%20Stars - lostintranslation

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接