So che ci sono state molte domande sul sito riguardo allo IOExeption
: servizio non disponibile ..... Ho controllato tutte le risposte che ho potuto trovare sull'argomento ... io Sto eseguendo come async task
che sembra funzionare bene ma ottenendo sempre la stessa eccezione.problemi con android.location.geocoder
Ho utilizzato isPresent()
sui tentativi precedenti anche se non è nel seguente codice e sto utilizzando lo stesso telefono. ho il permesso di internet Ho provato a cambiare l'obiettivo su google api
per vedere se quello era il problema ma non ha fatto alcuna differenza.
Questa è una parte vitale di un progetto di un quarto, quindi qualsiasi aiuto sarebbe serio. ps mai lavorato con Java o Android prima a poco tempo fa in modo perdonare qualsiasi rookie cercando ty codifica ..
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
view1 = (TextView) findViewById(R.id.textView1);
view2 = (TextView)findViewById(R.id.textView2);
view3 = (TextView)findViewById(R.id.textView4);
b1 = (Button) findViewById(R.id.button1);
locationManager =
(LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
//provider =
// locationManager.getProvider(LocationManager.GPS_PROVIDER);
final LocationListener listener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
view2.setText(Double.toString(location.getLatitude()));
view3.setText(Double.toString(location.getLongitude()));
Double lat = Double.valueOf(location.getLatitude());
Double longTemp = Double.valueOf(location.getLatitude());
new geo().execute(lat,longTemp);
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
};
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
locReqest();
}
private void locReqest() {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, listener);
}
});
}
class geo extends AsyncTask<Double, Void, String>{
Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
@Override
protected String doInBackground(Double... params) {
Address address = null;
List<Address> addresses = null;
try {
// Call the synchronous getFromLocation() method by passing in the lat/long values.
addresses = geocoder.getFromLocation(params[0].doubleValue(),params[1].doubleValue(), 1);
address = addresses.get(0);
if (address != null){
return "Got your address : " + address.getCountryName().toString();
}
} catch (IOException e) {
e.printStackTrace();
return "failed";
}
return"fail";
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
//view1.setText(result);
Toast.makeText(getApplicationContext(), "The address is: " + result, Toast.LENGTH_LONG).show();
}
}
heres il logcat
12-16 23:06:53.855: W/System.err(23578): java.io.IOException: Service not Available
12-16 23:06:53.865: W/System.err(23578): at android.location.Geocoder.getFromLocation(Geocoder.java:136)
12-16 23:06:53.865: W/System.err(23578): at com.boggerTech.local.Main$geo.doInBackground(Main.java:102)
12-16 23:06:53.880: W/System.err(23578): at com.boggerTech.local.Main$geo.doInBackground(Main.java:1)
12-16 23:06:53.900: W/System.err(23578): at android.os.AsyncTask$2.call(AsyncTask.java:264)
12-16 23:06:53.900: W/System.err(23578): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
12-16 23:06:53.905: W/System.err(23578): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
12-16 23:06:53.915: W/System.err(23578): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
12-16 23:06:53.915: W/System.err(23578): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-16 23:06:53.915: W/System.err(23578): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-16 23:06:53.920: W/System.err(23578): at java.lang.Thread.run(Thread.java:856)
12-16 23:07:10.440: W/System.err(23578): java.io.IOException: Service not Available
Si prega di inviare gli errori LogCat, in modo che possiamo vedere cosa sta succedendo. – Sam
ho anche trovato suggerimento che il local.getDefault potrebbe essere un problema ????? –
Ok, 'getFromLocation()' genererà [questa eccezione] (http://developer.android.com/reference/android/location/Geocoder.html#getFromLocation%28double,%20double,%20int%29) quando la rete non è attivo Hai verificato di essere connesso a dati mobili, wifi o altro? – Sam