实际上,我们正在使用以下代码将Google Distance Matrix应用到Android应用程序中:
String url = "https://maps.googleapis.com/maps/api/distancematrix/json?"
+ "origins=" + start.latitude + "," + start.longitude
+ "&destinations=" +waypoints+"&sensor=false&mode=driving&key=GOOGLE_key";
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet(url);
HttpResponse response = httpClient.execute(httpGet, localContext);
.........
......
...
我们必须将一个服务器密钥放在API url的key参数中,而不是android密钥,但它会针对特定的ip方向进行重新绑定。
我们想使用android密钥调用API,有人知道如何归档这个吗?
答案 0 :(得分:4)
“Google Maps Distance Matrix API仅适用于服务器密钥。”(不是Android密钥) https://developers.google.com/maps/documentation/distance-matrix/get-api-key#types-of-api-keys
您还可以在Android应用中使用clientId进行身份验证,但这样做会不安全,因为您的客户端密钥可能会被盗。
因此,最好的方法是在服务器中创建一个类似于代理的端点。 Android客户端向您的服务器发出请求。您的服务器使用服务器密钥向Google API发出请求。然后将响应发送回Android应用。