Autore Topic: il geocoder restituisce "Service not available"  (Letto 1149 volte)

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
il geocoder restituisce "Service not available"
« il: 14 Ottobre 2011, 12:08:55 CEST »
+1
Ciao a tutti,
volevo porvi questa questione. Sto costruendo un applicazione con MapView, che al tocco sullo schermo di un punto sulla mappa mi restituisce l'indirizzo. Arrivato a questo punto:
Codice (Java): [Seleziona]
try{
    List <Address>addresses =      geocoder.getFromLocation(p.getLatitudeE6()/1E6,p.getLongitudeE6()/1E6,1);
   String add ="";
        if (addresses.size()>0){
                for(int i=0; i<addresses.get(0).getMaxAddressLineIndex(); i++){
                 add += addresses.get(0).getAddressLine(i)+"\n";
                }      
        }
        Toast.makeText(getBaseContext(), add, Toast.LENGTH_LONG).show();
        }
        catch (IOException e){
           Toast.makeText(getBaseContext(),e.getMessage(),Toast.LENGTH_LONG).show();
        }
        }      
        else
           return false;
                return false;
        }
}
il try mi restituisce il toast con scritto "Service not available".
il logcat mi dice: E/MapActivity(376): Couldn't get connection factory client.
Ho girato il lungo e in largo tutto il web e il blog ma non ho trovato niente che facesse il caso mio.
C'e qualcuno che riuscirebbe ad aiutarmi?
Vi ringrazio in anticipo  :-)
Allego tutto il codice :
Codice (Java): [Seleziona]
public class ProvaGeocoding extends MapActivity {
        MapView mapView;
        GeoPoint p;
        MapController mc;
        class MapOverlay extends com.google.android.maps.Overlay{
                public boolean Draw(Canvas canvas, MapView mapview, boolean shadow, long when){
                        super.draw(canvas, mapview, shadow);
                        //Traduzione pixel geopoint dello schermo
                        Point screenPts = new Point();
                        mapView.getProjection().toPixels(p, screenPts);
                        //Aggiungo il marker
                        Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin);
                        canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
                return true;   
                }
               
                public boolean onTouchEvent(MotionEvent event, MapView mapview){
                        //Avviene quando l'utente solleva il dito
                        if (event.getAction()==1){
                                GeoPoint p = mapView.getProjection().fromPixels((int) event.getX(), (int)event.getY());
                                mc.animateTo(p);
                                Geocoder geocoder = new Geocoder (getApplicationContext(), Locale.getDefault());
                                try{
                                        List <Address>addresses = geocoder.getFromLocation(p.getLatitudeE6()/1E6, p.getLongitudeE6()/1E6, 1);
                                        String add ="";
                                        if (addresses.size()>0){
                                                for(int i=0; i<addresses.get(0).getMaxAddressLineIndex(); i++){
                                                        add += addresses.get(0).getAddressLine(i)+"\n";
                                                }      
                                        }
                                        Toast.makeText(getBaseContext(), add, Toast.LENGTH_LONG).show();
                                }
                                catch (IOException e){
                                        Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();
                                }
                        }      
                           else
                                   return false;
                        return false;
                }
        }
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mapView = (MapView) findViewById(R.id.mapview);
        mc = mapView.getController();
        mapView.setClickable(true);
        mapView.setBuiltInZoomControls(true);
        mc.setZoom(12);
        mc.setZoom(17);
        //Aggiungo indicatore di posizione
        MapOverlay mapOverlay = new MapOverlay();
        List<Overlay> listOfOverlays = mapView.getOverlays();
        listOfOverlays.clear();
        listOfOverlays.add(mapOverlay);
        mapView.invalidate();
    }
    protected boolean isRouteDisplayed() {
        return false;
    }
}

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:il geocoder restituisce "Service not available"
« Risposta #1 il: 14 Ottobre 2011, 14:41:25 CEST »
0
Ho testa questa piccola app su un emulatore con api level 7 e funziona, però su altri emulatori no, adesso vedo se riesco a testarla su un dispositivo reale  :-)

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
Re:il geocoder restituisce "Service not available"
« Risposta #2 il: 14 Ottobre 2011, 23:30:43 CEST »
0
Ho testa questa piccola app su un emulatore con api level 7 e funziona, però su altri emulatori no, adesso vedo se riesco a testarla su un dispositivo reale  :-)
L'emulatore android 2.2 presenta questo bacco, che non dovrebbe essere presente sulle altre versioni.
Io ci provai, ma mi veniva restituito comunque sempre lo stesso errore...mi dissero che era perche' l'emulatore non disponeva del reverse geocoding di cui invece erano forniti i vari dispositivi reali...poi non mi sono piu' interessato :D

Offline Bito92

  • Utente junior
  • **
  • Post: 51
  • Respect: +7
    • Mostra profilo
Re:il geocoder restituisce "Service not available"
« Risposta #3 il: 03 Novembre 2011, 16:56:49 CET »
0
Sono riuscito a risolvere il problema, utilizzo un emulatore con api level 7, e testando su un dispositivo reale funziona perfettamente  ;-)

Offline UmbySlipKnot

  • Nuovo arrivato
  • *
  • Post: 46
  • Respect: 0
    • Mostra profilo
Re:il geocoder restituisce "Service not available"
« Risposta #4 il: 04 Luglio 2013, 16:55:59 CEST »
0
Compilo la mia app con le Google API 17 e su Android 4.0 e 4.1 non funziona. Qualcuno in rete suggerisce di compilare con le API 16 per risolvere il problema, voi ne sapete qualcosa? Grazie

Offline UmbySlipKnot

  • Nuovo arrivato
  • *
  • Post: 46
  • Respect: 0
    • Mostra profilo
Re:il geocoder restituisce "Service not available"
« Risposta #5 il: 11 Luglio 2013, 14:23:47 CEST »
0
Compilo la mia app con le Google API 17 e su Android 4.0 e 4.1 non funziona. Qualcuno in rete suggerisce di compilare con le API 16 per risolvere il problema, voi ne sapete qualcosa? Grazie

Non funziona nemmeno compilando con le API 16, come devo fare?