我正在开发一个Android应用程序,它将显示当前位置和附近的地方详细信息。
我创建了一个项目,Google从console.developers.google.com/apis
中放置了适用于Android的API密钥除了地方细节外,一切正常。我收到了这个错误。我一直在阅读文章,来自stackoverflow的线程4个小时但无法解决这个错误。我添加了错误消息截图 Error here
我为Android和Google提供了Google地方用于网络服务API的地方。仍然没有运气。这是Place详细信息检索代码的片段。
private void ShowNearbyPlaces(List<HashMap<String, String>> nearbyPlacesList) {
for (int i = 0; i < nearbyPlacesList.size(); i++) {
//Log.d("onPostExecute","Entered into showing locations");
MarkerOptions markerOptions = new MarkerOptions();
HashMap<String, String> googlePlace = nearbyPlacesList.get(i);
double lat = Double.parseDouble(googlePlace.get("lat"));
//Log.d("onPostExecute",lat+"");
double lng = Double.parseDouble(googlePlace.get("lng"));
//Log.d("onPostExecute",lng+"");
String placeName = googlePlace.get("place_name");
Log.d("onPostExecute",placeName);
String vicinity = googlePlace.get("vicinity");
Log.d("onPostExecute",vicinity);
String reference = googlePlace.get("reference");
Log.d("onPostExecute",reference);
placeDetailsUrl = "https://maps.googleapis.com/maps/api/place/details/json?reference=";
placeDetailsUrl+=reference;
StringBuilder sb = new StringBuilder(placeDetailsUrl);
sb.append("&sensor=false");
sb.append("&key=API_KEY");
// Creating a new non-ui thread task to download Google place details
PlacesTask placesTask = new PlacesTask();
// Invokes the "doInBackground()" method of the class PlaceTask
placesTask.execute(sb.toString());
Log.d("onPostExecute",sb.toString());
LatLng latLng = new LatLng(lat, lng);
markerOptions.position(latLng);
markerOptions.title(placeName + " : " + vicinity);
mMap.addMarker(markerOptions);
markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
//move map camera
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.animateCamera(CameraUpdateFactory.zoomTo(11));
}
}
我注意到大多数文章都建议使用服务器密钥或浏览器密钥。但我没有在api控制台上看到任何服务器或浏览器密钥选项。
我希望有人能够帮我解决这个问题。
答案 0 :(得分:0)
不公开您的api密钥,您应该稍后将其删除。
我认为您没有正确启用Google地方服务。
转到https://developers.google.com/places/web-service/get-api-key,点击获取密钥并选择您的项目。你应该等几分钟再试一次新的api密钥。
查看https://developers.google.com/places/android-api/place-details以获取地点详细信息,而无需创建自己的asynctask