2013-01-23 12 views
6

Próbuję użyć api google geolocation na Androida. Jestem pewien, że mam ważną apikey na Androida i mam włączone rozliczenia. Jednak serwer zwracaGoogle Maps Geolocation api: dostęp nieskonfigurowany

Doman: usageLimits reson: dostęp nie jest skonfigurowany kod : 403

Czy ktoś rozwiązać ten problem? PS: Nie mam wsparcia dla przedsiębiorstw w zakresie opracowywania map Google. Mój kod jest podany poniżej:

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(); 
} 
+0

spróbuj dodać do czujnika param końcu adresu URL – 1Mayur

+1

W tym przykładzie API Geokodowanie żąda odpowiedzi json dla zapytania o „1600 Amphitheatre Parkway, Mountain View, CA”: http://maps.googleapis.com/maps/api/geocode/json? address = 1600 + Amphitheatre + Parkway, + Mountain + View, + CA & sensor = true_or_false W tym przykładzie zostawiliśmy parametr czujnika jako zmienną true_or_false, aby podkreślić, że musisz ustawić tę wartość na prawdziwe lub fałszywe jawnie. – 1Mayur

Odpowiedz

0

Możliwe przyczyny # 1: Dodaj wartość czujnika do adresu URL, NIE jest to opcja opcjonalna!

Możliwe przyczyny # 2: Czy usługa geolokalizacji została włączona w konsoli API?

Możliwe przyczyny # 3: Czy skonfigurowałeś informacje rozliczeniowe w konsoli API?

0

Przyczyną błędu jest jasne, kiedy czytasz odpowiedź wyrażenie:

"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." 

przejdź do konsoli programistów i pod poświadczenia dodać swoją aplikację pod „Ogranicz użycie do aplikacji na Androida”.