android - 在任何设备上使用谷歌地图。 (没有谷歌播放)

标签 android google-maps

我正在尝试在 android 中的谷歌地图上进行可行性测试。

Google Maps Android V1

在使用MapView的时候我们要加上

<uses-library android:name="com.google.android.maps" />

在 androidmenifest.xml 中。但据我所知,有些设备没有嵌入这个库。因此,该应用程序甚至无法安装在这些设备上。

Google Maps Android V2

在 V2 中, map 由 extra/google_play_services 的 sdk 支持。这种方法更好,但它仍然依赖于 google play 服务。如果我卸载该服务,将出现一条警告消息,如下图所示。

google map demo

当我点击按钮时,它崩溃并抛出异常。

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=http://play.google.com/store/apps/details?id=com.google.android.gms flg=0x80000 pkg=com.android.vending }

是因为找不到google play,测试前也卸载了google play来处理Intent。但是浏览器可以在不指定 pkg=com.android.vending 的情况下处理 Intent 。

所以..这是我的问题。

  1. 是否可以通过自己的应用程序拦截并处理上述Intent?所以我 可以传递给浏览器。

  2. 如果不行,开发android最好的方案是什么 带有 map 的应用程序。我知道有很多安卓设备没有 已安装Google Map或Google Play,使用时崩溃无法解决 可以接受。

最佳答案

实际上,问题与 Gingerbread 和旧手机有关,如果它们尚未安装 Play Store,则使用错误的 URI。这不是一个安全的假设。大多数开箱即用的 Gingerbread 手机都没有附带它,Google 更新也不一定会安装它。这是 Google Play 服务 V2 中的一个已知错误。查看讨论 on Google Code

讨论了绕过它的 hack,但您需要拦截按钮按下才能使用它。

关于android - 在任何设备上使用谷歌地图。 (没有谷歌播放),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13817383/

相关文章:

android - 构建器中的扩展 (android.app.notification.extender) 无法应用于 (android.support.v4.app.notificationcompat.wearableextender)

android - Kotlin 如何调用扩展函数

android - Galaxy Note 上的动画不流畅

google-maps - GPS 坐标和 Google API v3

javascript - IE11 中的 Google map 给出 "Unspecified error"

javascript - 在源和目的地之间绘制路径并连接所有点(城市)时,谷歌地图路径中出现意外的线条

android - 无法获取 'google.bintray.com/exoplayer/com/transistorsoft/tsbackgroundfetch/maven-metadata.xml'。从服务器 :Bad Gateway 收到状态代码 502

java - RTL 模式下带有数字的文本是无序的 (Android)

javascript - 使用 Google Maps API 进行标记的方向

android - 隐藏在透明操作栏后面的 MyLocation 按钮,如何重新定位?