Autore Topic: localizzare solo utilizzando la rete  (Letto 1812 volte)

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
localizzare solo utilizzando la rete
« il: 29 Gennaio 2011, 17:50:47 CET »
0
allora! preciso che ho la rete attiva (uso il 3g) e nel manifest ho le autorizzazioni.
E' da ieri che ci perdo la testa a capire perchè il seguente codice non effettua nessun aggiornamento! Non scambia dati , non fà niente!
Lo stesso codice per gps, funziona a meraviglia....
Codice (Java): [Seleziona]
package com.network;

import java.io.IOException;
import java.util.List;
import java.util.Locale;


import android.app.Activity;
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.widget.TextView;

public class main extends Activity {
    /** Called when the activity is first created. */
          @Override
      public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main);

              // Otteniamo il riferimento al LocationManager
              LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
           
              // Registriamo il LocationListener al provider
              locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

             

      }

          LocationListener locationListener = new LocationListener() {
          public void onLocationChanged(Location location) {
               
              Double geoLat = location.getLatitude()*1E6;
              Double geoLng = location.getLongitude()*1E6;
              TextView coordinate = (TextView) findViewById(R.id.TextView01);
              TextView ecco_dove_sono=(TextView)findViewById(R.id.TextView02);
              coordinate.setText("latitude:"+geoLat.toString()+" longitude:"+geoLng.toString());
             
           
                  if (location != null) {
                              double lat = location.getLatitude();
                              double lng = location.getLongitude();

                              Geocoder gc = new Geocoder(getApplicationContext(), Locale.getDefault());
                             
                             
                                                                try {
                                                                        List<Address> addresses = gc.getFromLocation(lat, lng, 1);
                                                               
                                StringBuilder sb = new StringBuilder();
                                if (addresses.size() > 0) {
                                  Address address = addresses.get(0);

                                  sb.append(address.getLocality()).append("\n");
                                  sb.append(address.getCountryName());
                                  ecco_dove_sono.setText("sei in "+sb.toString());
                                  System.out.println(sb.toString());
                                 // locationManager.removeUpdates(locationListener);
                                }else {
                                    //No location found
                                  ecco_dove_sono.setText("sei in "+"no location found");
                                }
                             
                             
                           
                            } catch (IOException e) {
                                                                        // TODO Auto-generated catch block
                                                                        //e.printStackTrace();
                                ecco_dove_sono.setText("sei in "+"no location found");
                                                                }
             
          }
          }

          public void onProviderDisabled(String provider) {
                  // TODO Auto-generated method stub
                 
          }

          public void onProviderEnabled(String provider) {
                  // TODO Auto-generated method stub
                 
          }

          public void onStatusChanged(String provider, int status, Bundle extras) {
                  // TODO Auto-generated method stub
                 
          }      
  };
         
           
         
}

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:localizzare solo utilizzando la rete
« Risposta #1 il: 30 Gennaio 2011, 09:41:47 CET »
0
debbuger e logcat non danno errori....   :-( :-( :-( :-( :-( :-(

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:localizzare solo utilizzando la rete
« Risposta #2 il: 31 Gennaio 2011, 08:46:12 CET »
0
non sapendo come procedere, vi posto tutto
main.xml
Codice (XML): [Seleziona]
  <?xml version="1.0" encoding="utf-8" ?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
  <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />
  <TextView android:text="@+id/TextView01" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" />
  <TextView android:text="@+id/TextView02" android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" />
  </LinearLayout>
manifest
Codice (XML): [Seleziona]
  <?xml version="1.0" encoding="utf-8" ?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.network" android:versionCode="1" android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".main" android:label="@string/app_name">
- <intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
  </activity>
  </application>
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  </manifest>


Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:localizzare solo utilizzando la rete
« Risposta #3 il: 31 Gennaio 2011, 08:48:21 CET »
0
Prova ad usare la classe Criteria:

Criteria | Android Developers

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:localizzare solo utilizzando la rete
« Risposta #4 il: 31 Gennaio 2011, 10:00:44 CET »
0
prova a mettere
Codice (XML): [Seleziona]
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> di questo non sono sicurissimo, perché io uso pure gsm e forse il COARSE lo vuole per il gsm.

inoltre, sei sicuro di avere attivato 'utilizza reti wireless'? (non si sa mai, eh? capita pure ai migliori)

un'ultima cosa: a volte mi capita che la rete non faccia il primo aggiornamento immediatamente, ma dopo un pò. Hai provato a pazientare?
^_^
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:localizzare solo utilizzando la rete
« Risposta #5 il: 31 Gennaio 2011, 10:10:18 CET »
0
si si certo, ho pazientato! e ho attivato le reti wirless! ma la cosa bella è che settimane fà funzionavano!!!! Avevo fatto 2 programmi, uno che utiizzava solo il gps, e uno che utilizzava solo le reti mobili.... addirittura ho pensato che non avevo 3 celle attive intorno a me! ma poi , mi son detta di no! perchè se uso il programmino che usa il gps, poi mi visualizza il nome della città in cui stò! e questo è possibile solo con connessione dati.... uff....

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:localizzare solo utilizzando la rete
« Risposta #6 il: 31 Gennaio 2011, 10:12:21 CET »
0
hai aggiornato android?
comunque, prova a fare come ha suggerito Ricky, usando i Criteria.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:localizzare solo utilizzando la rete
« Risposta #7 il: 31 Gennaio 2011, 10:20:22 CET »
0
e stò provando....
cioè creo l'oggettto creteria e poi....

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:localizzare solo utilizzando la rete
« Risposta #8 il: 31 Gennaio 2011, 10:31:57 CET »
+1
guardati questo.
Potrebbe esserti utile.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:localizzare solo utilizzando la rete
« Risposta #9 il: 31 Gennaio 2011, 11:50:51 CET »
0
stò studiandomi anche http://code.google.com/p/anddevit-tutorials/source/browse/src/it/anddev/tutorialgpsmapview/MainActivity.java?repo=gpsmapview comunque è assurdo ..... a me funzionava, tempo fà!!!!!!! :-(  o_O  :-\

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:localizzare solo utilizzando la rete
« Risposta #10 il: 01 Febbraio 2011, 09:45:20 CET »
0
non hai cambiato versione di sdk, giusto?

cmq, se vuoi puoi postare lo zip del progetto, che lo provo sul mio......
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:localizzare solo utilizzando la rete
« Risposta #11 il: 01 Febbraio 2011, 10:05:23 CET »
0
no non ho cambiato la versione del sdk. Comunque grazie mille per la disponibilità. ti posto lo zip
www.softmystery.altervista.org/location_network

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:localizzare solo utilizzando la rete
« Risposta #12 il: 01 Febbraio 2011, 10:06:33 CET »
0
la classe criteria, l'ho applicata, senza successo. e quindi ho rifatto èper l'ennesima volta ciò che c'è scritto nel sito android.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:localizzare solo utilizzando la rete
« Risposta #13 il: 01 Febbraio 2011, 11:02:54 CET »
0
Hai provato per caso a vedere se nel logcat c'è qualche errore?

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:localizzare solo utilizzando la rete
« Risposta #14 il: 01 Febbraio 2011, 11:26:44 CET »
0
no non ho cambiato la versione del sdk. Comunque grazie mille per la disponibilità. ti posto lo zip
www.softmystery.altervista.org/location_network

il link non va....
perché non lo alleghi sul post?
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/