Autore Topic: Maps V2 che confusione  (Letto 1501 volte)

Offline Ivan86

  • Utente junior
  • **
  • Post: 139
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S II
  • Sistema operativo:
    Windows 7
Maps V2 che confusione
« il: 27 Marzo 2013, 23:04:35 CET »
0
Ciao a tutti.
Nonostante le guide di android sto avendo problemi con queste nuove mappe.
Con la prima versione:
1. mi prelevavo lat, lon, indirizzo e città ad ogni spostamento dello smartphone
2. caricavo i marker personalizzati sulla mappa
adesso queste due funzionalità non riesco a riprodurle con la versione nuova.
In più non capisco perché con l'emulatore non riesco a vedere la mappa appena creata, invece dal cellulare la vedo, quindi non riesco a vedere dal logcat gli errori che commetto per i primi due punti.
Come faccio a far funzionare le mappe sull'emulatore?

Procedendo per gradi, per quanto riguarda il punto 1. questo è quello che ho fatto:
Codice (Java): [Seleziona]
public class MappaV2Activity extends Activity implements OnMarkerClickListener, OnInfoWindowClickListener, OnMarkerDragListener, OnMyLocationChangeListener{

         LocationManager locationManager;
         private TextView txt_indirizzo;
         String luogo;
         .....

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.mappa);
                 
                mapV2 = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

                // Impostazioni della mappa
                mapV2.moveCamera(CameraUpdateFactory.newLatLngZoom(ITALY, 6));
                mapV2.setMyLocationEnabled(true);
                mapV2.getUiSettings().setCompassEnabled(false);
                mapV2.getUiSettings().setTiltGesturesEnabled(false);
                mapV2.getUiSettings().setRotateGesturesEnabled(true);
                mapV2.setMapType(GoogleMap.MAP_TYPE_NORMAL);
               
               
                locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                if(!locationManager.isProviderEnabled("gps")){
                        Toast.makeText(this, "GPS spento.", Toast.LENGTH_LONG).show();
                }

                mapV2.setOnMyLocationChangeListener(this);
               
                ....
                }

public void onMyLocationChange(Location location) {
        latitude                = location.getLatitude();                                                              
        longitude               = location.getLongitude();                                                     
        LatLng latLng   = new LatLng(latitude, longitude);                                             
        Geocoder gc     = new Geocoder(getBaseContext(), Locale.getDefault()); 
       
        try {
                        List<Address> addresses = gc.getFromLocation(latitude, longitude, 10);
           
            if (addresses.size() > 0)
            {
                Address address = addresses.get(0);
                StringBuilder sb = new StringBuilder();
                sb.append(address.getAddressLine(0) + ", ");
                sb.append(address.getAddressLine(1));
                luogo = sb.toString();
            }
            txt_indirizzo.setText("Ti trovi in " + luogo);
           
            mapV2.moveCamera(CameraUpdateFactory.newLatLng(latLng));
            mapV2.animateCamera(CameraUpdateFactory.zoomTo(16));
           
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
Testando su smartphone una volta rilevata la posizione gps non mi scrive niente nella txt_indirizzo.

Potete aiutarmi?
grazie
« Ultima modifica: 03 Aprile 2013, 10:19:45 CEST da Ivan86 »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Maps V2 che confusione
« Risposta #1 il: 28 Marzo 2013, 09:58:11 CET »
0
Non ho capito bene qual'è il problema.
Vorrei farti notare però che:
1)E' normale che non ti funzioni sull'emulatore
2)Puoi tranquillamente leggere il logcat anche del dispositivo fisico.

Offline Ivan86

  • Utente junior
  • **
  • Post: 139
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S II
  • Sistema operativo:
    Windows 7
Re:Maps V2 che confusione
« Risposta #2 il: 28 Marzo 2013, 10:15:39 CET »
0
Ciao Ricky

i problemi che ho evidenziato sono:
1. il rilevamento del gps
2. il caricamento dei marker
3. l'emulatore

Il codice che ho postato è relativo al punto 1.

Per quanto riguarda l'emulatore, come mai non funziona? Non hanno simulato le mappe V2 per l'emulatore?
Scusa l'ignoranza, come faccio a vedere il logcat sul dispositivo di una app che sto testando?

grazie
« Ultima modifica: 28 Marzo 2013, 10:17:28 CET da Ivan86 »

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Maps V2 che confusione
« Risposta #3 il: 28 Marzo 2013, 11:05:14 CET »
0
Scusa l'ignoranza, come faccio a vedere il logcat sul dispositivo di una app che sto testando?


TastoWindows->esegui->CMD (invio)-> adb logcat -> vedi il logcat.
Altrimenti da eclipse dove lo vedi per l'emulatore
Se non hai eclipse aperto, c'è il tool ddms nell'sdk
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Ivan86

  • Utente junior
  • **
  • Post: 139
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S II
  • Sistema operativo:
    Windows 7
Re:Maps V2 che confusione
« Risposta #4 il: 28 Marzo 2013, 11:49:46 CET »
0
Avevo fatto proprio così, settando inoltre i livelli di debug ad E... ma non mi funzionava.. vabbè.

Dato che le mappe non funzionano sull'emulatore devo ogni volta installare l'apk sul dispositivo.

Noto che il Logcat funziona solo con la modalità "Sviluppatore" settata sul cell. Ma non appena la imposto, il pc non rileva più la presenza del dispositivo.
Ogni volta che faccio una modifica al progetto devo riagganciare il cell? sarebbe uno strazio...

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Maps V2 che confusione
« Risposta #5 il: 28 Marzo 2013, 11:52:13 CET »
0
Avevo fatto proprio così, settando inoltre i livelli di debug ad E... ma non mi funzionava.. vabbè.

Dato che le mappe non funzionano sull'emulatore devo ogni volta installare l'apk sul dispositivo.

Noto che il Logcat funziona solo con la modalità "Sviluppatore" settata sul cell. Ma non appena la imposto, il pc non rileva più la presenza del dispositivo.
Ogni volta che faccio una modifica al progetto devo riagganciare il cell? sarebbe uno strazio...
la modalità sviluppatore VA attivata se vuoi debuggare/sviluppare sul dispositivo, mi stupisco che tu non l'abbia mai usata.
Il fatto che quando l'attivi non rileva il dispositivo, è perchè non hai installato i driver di debug.
Che dispositivo è? se è un nexus i driver sono nell'sdk manager, altrimenti devi cercarli sul sito del costruttore.
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Ivan86

  • Utente junior
  • **
  • Post: 139
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S II
  • Sistema operativo:
    Windows 7
Re:Maps V2 che confusione
« Risposta #6 il: 28 Marzo 2013, 12:10:34 CET »
0
Ho sviluppato 3 anni fa e non avevo un android. sfruttavo sempre l'emulatore.
Ora ho un Galaxy SII, e mettendo Opzioni sviluppatore riesco a vedere il Logcat da cmd.



Post unito: 28 Marzo 2013, 12:30:14 CET
EDIT:

cmq risolto l'arcano dell'emulatore :)

volevo tornare sul problema del segnale GPS. Praticamente non riesco a prelevare l'indirizzo. L'errore del Logcat è questo:
Codice: [Seleziona]
E/AndroidRuntime( 8046): FATAL EXCEPTION: main
E/AndroidRuntime( 8046): java.lang.NullPointerException
E/AndroidRuntime( 8046):        at it.tesi.MappaV2Activity.onMyLocationChange(MappaV2Activity.java:485)
E/AndroidRuntime( 8046):        at com.google.android.gms.maps.GoogleMap$7.a(Unknown Source)
E/AndroidRuntime( 8046):        at com.google.android.gms.internal.p$a.onTransact(Unknown Source)
E/AndroidRuntime( 8046):        at android.os.Binder.transact(Binder.java:326)
E/AndroidRuntime( 8046):        at com.google.android.gms.maps.internal.IOnMyLocationChangeListener$Stub$Proxy.onMyLocationChange(IOnMyLocationChangeListener.java:82)
E/AndroidRuntime( 8046):        at maps.z.bh.onLocationChanged(Unknown Source)
E/AndroidRuntime( 8046):        at maps.ch.a.run(Unknown Source)
E/AndroidRuntime( 8046):        at android.os.Handler.handleCallback(Handler.java:615)
E/AndroidRuntime( 8046):        at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 8046):        at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 8046):        at android.app.ActivityThread.main(ActivityThread.java:4921)
E/AndroidRuntime( 8046):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 8046):        at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 8046):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
E/AndroidRuntime( 8046):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
E/AndroidRuntime( 8046):        at dalvik.system.NativeStart.main(Native Method)

Post unito: 28 Marzo 2013, 13:16:31 CET
In pratica la riga dell'errore è qui:

Codice (Java): [Seleziona]
txt_indirizzo.setText("Ti trovi in " + luogo);
L'ho dichiarato così:
Codice (Java): [Seleziona]
TextView txt_indirizzo;mentre nell'onCreate ho fatto così:
Codice (Java): [Seleziona]
txt_indirizzo = (TextView)findViewById(R.id.txt_indirizzo);
continua a darmi errore
« Ultima modifica: 28 Marzo 2013, 13:16:31 CET da Ivan86, Reason: Merged DoublePost »