Problem z Location API

0

Witam
Pisze prosty program wykorzystujący dane z GPS i wyświetlający je. Jednak mam pewien problem bo cały czas sygnalizuje mi jakis nieznany mi błąd.
Oto kod programu (część ta najważniejsza)

import javax.microedition.midlet.*;
import javax.microedition.location.*;
import javax.microedition.lcdui.*;

/**
 * @author Sebastian
 */

public class GPS extends MIDlet {
private Criteria cr;
private LocationProvider provider;
private Display dp;
private Alert alert;
private Location location;


public GPS(){
// Criteria can be used to filter which GPS device to use.
Criteria criteria = new Criteria();
criteria.setCostAllowed(true);
criteria.setPreferredPowerConsumption(Criteria.NO_REQUIREMENT);
try{
// Get a location provider based on the aforementioned criteria.
LocationProvider provider = LocationProvider.getInstance(criteria);
}
catch(LocationException e){
  System.out.println("Błąd");  
}
try{
////////////////////////////////////////////////////////////////////////////////////////
// ponizej jest błąd
Location location = provider.getLocation(180);
//////////////////////////////////////////////////////////////////////////////////////////
}
catch(LocationException e)
{
    System.out.println("Błąd");
}

// Get the coordinates of the current location.
Coordinates coordinates = location.getQualifiedCoordinates();

if (coordinates  != null) {
    // Get the latitude and longitude of the coordinates.
    double latitude = coordinates.getLatitude();
    double longitude = coordinates.getLongitude();
} else {
    // You didn't get any coordinates.
}

Używam NetBeans IDE ale nie sądze, że gdybym wykorzystał inny program to błąd by zniknął

0

Treść błędu o ile to nie tajemnica.

0
sebap123 napisał(a)
////////////////////////////////////////////////////////////////////////////////////////
// ponizej jest błąd
Location location = provider.getLocation(180);
//////////////////////////////////////////////////////////////////////////////////////////

tutaj jest błąd
a to tekst który się pojawia jako błąd:
unreported exception java.lang.InterruptedException; must be caught or declarade to be thrown
A i to tez sie tyczy tego samego chociaz raz sie pojawia a raz nie:
Local variable hides a field

No to to jest cały błąd jaki i blokuje prace.

0

Nie łapiesz wszystkich wyjątków. Dodaj obsługę java.lang.InterruptedException.

0

no dodałem i nadal nic
Znaczy sie tak mi się wydaje, ze dodałem. Wziąłem żeby to zaimportował

0

Najlepiej pokaż kod.

0
try {
Location location = provider.getLocation(180);
} catch (InterruptedException e) {
//to co ma się dziać w przypadku wyrzucenia wyjątku
}

zobacz specyfikację metody '.getLocation()', prawdopodobnie grozi wyrzuceniem InterruptedException

0

no działa ale tylko częściowo. Chciałem teraz przesłać ten program na telefon (nokia N95) ale wystąpil mi bląd, że program niekompatybilny z telefonem. W innych programach zmieniam po prostu ustawienia dot. CLDC i MIDP. Zawsze wystarczy, że ustawie to na CLDC 1.0 a MIDP 1.0 i działa na telefonie, ale teraz w tym programie wykorzystuje konwersje Double.toString a także Spacer i jak tylko zmienie ustawienia juz te dwa elementy pojawiają się jako błędy. Dlatego muszę zostać na CLDC 1.1 i MIDP 2.1.
Może ma ktoś pomysł jak z tym sobie poradzić?

0

A i jeszcze pojawiaja się błędy dwa przy uruchamianiu na emulatorze:
java.lang.IllegalStateException
lub
java.lang.NullPointerException
Ten pierwszy udało mi sie nawet wyłączyć przy pomocy catch ale ten drugi juz tak się nie da.

0

Czy ktoś mógł by mi pomóc? Bardzo zależy mi na tym, żeby ten program działał.

1 użytkowników online, w tym zalogowanych: 0, gości: 1