在任何设备上使用谷歌地图(无需谷歌商店)

11

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

Google Maps Android V1

使用MapView时,我们需要添加

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

在androidmenifest.xml中。但据我所知,有些设备没有嵌入此库。因此,在这些设备上甚至无法安装应用程序。 Google Maps Android V2
在V2中,地图由extra/google_play_services sdk支持。这种方法更好,但仍然依赖于Google Play服务。如果我卸载该服务,将会出现如下屏幕截图的警告消息。

google map demo

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

android.content.ActivityNotFoundException: 未找到处理该Intent的Activity { 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,因此无法找到它来处理该Intent。但是,在不指定pkg=com.android.vending的情况下,浏览器可以处理该Intent。

所以..这是我的问题。

  1. 是否可能通过我的应用程序拦截和处理上述Intent?这样我就可以将其传递给浏览器。

  2. 如果不可能,那么使用地图开发Android应用程序的最佳解决方案是什么?我知道有许多Android设备没有安装Google Map或Google Play,在使用过程中崩溃是不能接受的。

2个回答

5
实际上,这个问题与Gingerbread和使用错误URI的旧手机有关,如果它们没有安装Play Store的话。这不是一个安全的假设。大多数开箱即用的Gingerbread手机都没有它,并且Google的更新不一定会安装它。这是Google Play服务V2中已知的一个错误。请参见Google Code上的讨论
有一个绕过此问题的方法,但您需要截取按钮按下事件才能使用它。

1

您需要使用Google地图API来运行Google地图。创建带有Google API的AVD并在该AVD(模拟器)中运行您的项目。

enter image description here


2
我知道...但是有一些由小型制造商生产的设备不支持谷歌地图。使用地图库的应用程序无法安装在这些设备上。 - faylon

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