2013-02-01 66 views
0

我正在使用仿真器Google API的(Google公司)。我想獲得授予者地址。 但我得到這個「服務不可用」錯誤。我目前在api級別10.有人告訴我關於模擬器上的這個錯誤。但我不認爲它在我的模擬器上,因爲內置的地圖應用程序工作正常。地理編碼服務不可用

這裏是我從點獲得位置代碼:

GeoPoint point = mapView.getProjection().fromPixels(
         (int) e.getX(), (int) e.getY()); 
       Geocoder coder = new Geocoder(GoogleMaps.this, Locale.ENGLISH); 
       try { 
        List<Address> addresses = coder.getFromLocation(
          point.getLatitudeE6()/1E6, 
          point.getLongitudeE6()/1E6, 1); 
        String address = ""; 
        Address a = addresses.get(0); 
        Toast.makeText(GoogleMaps.this, a.getCountryName(), 300) 
          .show(); 
       } catch (IOException e1) { 
        Toast.makeText(GoogleMaps.this, e1.getMessage(), 
          Toast.LENGTH_LONG).show(); 
       } 
+0

你試試吧一個真正的設備上?這很容易顯示它是否是一個模擬器錯誤。 – Dan

+0

「因爲內置的地圖應用程序工作正常」 - >我理解你的推理,但相信我,這並不意味着什麼。我同時經歷過兩次。正如Dan所建議的那樣,在真實的設備上嘗試一下。 – thelawnmowerman

+0

在更高的API級別嘗試使用相同的代碼,因爲我在2.3中找到了關於地理編碼的討論。 –

回答

0

ü可以試試這個:

private String getAddress(double LATITUDE, double LONGITUDE){ 
     String strAdd = ""; 
     Geocoder geocoder = new Geocoder(context, Locale.getDefault()); 
     try { 
      List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1); 

      if(addresses != null) { 
       Address returnedAddress = addresses.get(0); 
       StringBuilder strReturnedAddress = new StringBuilder(""); 
       for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) { 
        strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n"); 
       } 
       strAdd = strReturnedAddress.toString(); 
       MLog.v("My Current loction address", ""+strReturnedAddress.toString()); 
      } 
      else{ 
       MLog.v("My Current loction address", "No Address returned!"); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
      MLog.v("My Current loction address", "Canont get Address!"); 
     } 
     return strAdd; 
    } 
相關問題