6

我正在尝试在 Android 上使用 google geolocation api。我确定我有适用于 android 的有效 apikey 并且我已启用计费。但是,服务器返回

域:usageLimits reson:访问未配置代码:403

谁能解决这个问题?PS:我没有对谷歌地图开发的企业支持。我的代码在下面列出

JSONObject holder = new JSONObject();  
JSONArray cellarray = new JSONArray();  
JSONArray wifiarray = new JSONArray();
JSONObject cell = new JSONObject();
JSONObject wifi1 = new JSONObject();
JSONObject wifi2 = new JSONObject();
try {
    cell.put("cellId", cid);
    cell.put("locationAreaCode", lac); 
    cell.put("mobileCountryCode", mcc);  
    cell.put("mobileNetworkCode", mnc);
    cell.put("age", 0);
    cell.put("signalStrength", -95);
    cellarray.put(cell);

    wifi1.put("macAddress", "01:23:45:67:89:AB");
    wifi1.put("signalStrength", 8);
    wifi1.put("age", 0);
    wifi1.put("signalToNoiseRatio", -65);
    wifi1.put("channel", 8);
    wifiarray.put(wifi1);

    wifi2.put("macAddress", "01:23:45:67:89:AC");
    wifi2.put("signalStrength", 4);
    wifi2.put("age", 0);
    wifiarray.put(wifi2);

    holder.put("homeMobileCountryCode", mcc);
    holder.put("homeMobileNetworkCode", mnc);
    holder.put("radioType", "gsm");
    holder.put("carrier", "T-Mobile");
    holder.put("cellTowers", cellarray);
    holder.put("wifiAccessPoints", wifiarray);


} catch (JSONException e) {  
    e.printStackTrace();  
}
DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("https://www.googleapis.com/geolocation/v1/geolocate?key="+API_key);
StringEntity stringEntity = null;  

try {  
    stringEntity = new StringEntity(holder.toString());  
    stringEntity.setContentType("application/json");

    Log.v("zf",stringEntity.getContentType().toString());

} catch (UnsupportedEncodingException e) {  
    e.printStackTrace();  
}

httpPost.setEntity(stringEntity);  
HttpResponse httpResponse = null;  
try {
    httpResponse = client.execute(httpPost);  
} catch (ClientProtocolException e) {  
    e.printStackTrace();  
} catch (IOException e) {  
    e.printStackTrace();  
} 
4

2 回答 2

0

可能的原因 #1:将传感器值添加到您的 url,它不是可选的!

可能的原因 #2:您是否在 API 控制台中启用了 Geolocation 服务?

可能的原因 #3:您是否在 API 控制台中设置了账单信息?

于 2013-03-23T12:02:29.930 回答
0

当您阅读字符串响应时,错误的原因就很清楚了:

"code": 403,
"message": "There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed."

转到开发者控制台并在凭据下将您的应用程序添加到“限制对您的 Android 应用程序的使用”下。

于 2015-12-19T00:06:07.313 回答