Ciao Jokel
Innerhalb von onCreate mache ich folgendes :
//prüft ob OS Version > 6 ist, denn vorher kann nicht die Rechte geprüft werden
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//prüfen ob Rechte vorhanden sind um auf die GPS Daten zu zugreifen
if (pruefrechte()) {
str_starttext = getResources().getString(R.string.lbl_start_neu);
initial();
} else {
}
}else{
str_starttext = getResources().getString(R.string.lbl_start_alt);
initial();
}
Aber bin mir nicht so sicher, ob dies weiterhilft. Das ist eines von meinen ersten Projekten und mittlerweile ein zimmliches Chaos im Code.
Was mir mehr Kopfzerbrechen macht ist folgenden Code
private void position(){
// private DatePickerDialog.OnDateSetListener listener;
LocationManager posmanager = (LocationManager) getSystemService(LOCATION_SERVICE);
LocationListener horcher = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Double lang = location.getLongitude();
Double breit = location.getLatitude();
Double hoch = (double) 0;
if (location.hasAltitude())
hoch = location.getAltitude() - location.getAccuracy();
setD_breite(breit);
setD_laenge(lang);
setN_zone(Astronomy.zeitzone(lang));
zeig_pos();
txt_hoch.setText(String.format(FORMAT_FLOAT, hoch));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
//Position wird gesucht
if( b_gps ) { //genau
str_starttext += getResources().getString(R.string.lbl_genau);
posmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, n_distanz, (LocationListener) horcher);
}else { //ungenau
str_starttext += getResources().getString(R.string.lbl_ungenau);
posmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, n_distanz, (LocationListener) horcher);
}
}
Die Zeilen sind rot unterlegt und melden den Fehler
posmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, n_distanz, (LocationListener) horcher);
und
posmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, n_distanz, (LocationListener) horcher);
ergibt die Warnung
Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with checkPermission) or explicitly handle a potential SecurityException
Was könnte man dagegen machen?
Gruss Renato