Google在Android附近搜索附近的搜索?

时间:2015-03-12 23:25:16

标签: android google-places-api

我无法确定如何从Android调用Google Places API。具体来说,我现在正在查看附近的搜索电话。

这是发送时的完整网址:(减去我的API密钥)

https://maps.googleapis.com/maps/api/place/nearbysearch/xml?location=49.7088,-124.9712&radius=3000&sensor=true&key=YourAPIKeyHere

我收到此错误:

<error_message>This IP, site or mobile application is not authorized to use this API key.</error_message>

我在Google Developers Console中完成了整个过程,包括获取API密钥,将我的应用添加到允许列表,将库(google-play-services_lib)和设置添加到我的项目中,添加了api密钥和清单中的gms.version条目,但它仍然失败。

为了测试该设置部分,我将Google地图添加到同一个活动中,并且它正确显示 - 这表明我的应用正确地位于允许的列表中,并且我的API密钥是正确的(它是&#39; sa在Manifest和URL中使用的字符串资源,否则地图不会显示任何图形。

问题:如何通过Android制作Google商店附近的搜索电话?

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为你在这里混淆了一些工具。 Google Places API不需要任何其他库。您无需在自己的应用中使用Google Play服务。它只是一个http调用。

Google 确实宣布他们正在将Play API添加到Play服务中,最终应该替换HTTP API,但您还不需要使用它而且我还没有甚至看到了文档,只是公告。

首先,这里是Places API说明的链接:https://developers.google.com/places/documentation/#Authentication

确保当您查看凭据时,您的Android密钥会显示,&#34;允许任何应用程序&#34;。

Credential Example

这是Java中使用名为WebRequest的开源HTTP类的示例实现:

String TempSQL = "https://maps.googleapis.com/maps/api/place/nearbysearch/xml?" 
                            + GMapI_Key
                            + "&location=" + coordinatesString
                            + "&rankby=distance&types=establishment&name="
                            + placeName;
            new WebRequest().get().to(TempSQL).executeAsync(new WebRequest.Callback() {
                public void onSuccess(int responseCode, String responseText) {
                    //Your code here
                }
                public void onError() {
                    //throw new RuntimeException("NoWebResponse");
                }
            });