我无法确定如何从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商店附近的搜索电话?
谢谢!
答案 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;。
这是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");
}
});