11

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

谷歌地图安卓 V1

使用 MapView 时,我们必须添加

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

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

谷歌地图安卓 V2

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

谷歌地图演示

当我单击按钮时,它崩溃并引发异常。

android.content.ActivityNotFoundException:未找到处理 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来处理Intent。但是意图可以由浏览器处理而无需指定 pkg=com.android.vending。

所以..这是我的问题。

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

  2. 如果不可能,用地图开发 android 应用程序的最佳解决方案是什么。我知道有很多安卓设备没有安装谷歌地图或谷歌播放,使用崩溃是不能接受的。

4

2 回答 2

5

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

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

于 2013-02-07T14:55:04.923 回答
1

您需要使用 google map api 来运行 google map 。使用 google api 创建 AVD 并在该 AVD(模拟器)中运行您的项目。

在此处输入图像描述

于 2012-12-11T09:41:23.533 回答