Wie aktuelle Position mit voller Adresse in Android 7.0 und bove erhalten

stimmen
0

In meiner app will ich aktuellen Standort mit voller Adresse erhalten. In meinem Fall ich erhalte Lage in Android-Version weniger als 6,0

final FloatingActionButton btn = view.findViewById(R.id.locAndDate);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            if (checkPermission(TXT_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION)) {
                    showPermissionExplanantion(TXT_LOCATION);
                } else if (!permission.checkPermissionPrefrences(location)) {
                    requestPermission(TXT_LOCATION);
                    permission.updatePermission(location);
                } else {
                    Toast.makeText(getActivity(), Please allow Location Permission in you device setting, Toast.LENGTH_SHORT).show();
                }
            } else {
                Toast.makeText(getActivity(), Location Permission Granted, Toast.LENGTH_SHORT).show();
                getLocation();

            }

        }
    });

    return view;

}



void getLocation() {
    try {
        locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 50000, 5, this);
    } catch (SecurityException e) {
        e.printStackTrace();
    }
}

@Override
public void onLocationChanged(Location location) {

    geocoder = new Geocoder(getActivity(), Locale.getDefault());
    List<Address> addresseslList;
    try {
        addresseslList = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
        str += addresseslList.get(0).getAddressLine(0);

    } catch (IOException e) {
        e.printStackTrace();
    }
    loc.setText(str);
    System.out.print(str);
}

@Override
public void onProviderDisabled(String provider) {
    Toast.makeText(getActivity(), Please Enable GPS and Internet, Toast.LENGTH_SHORT).show();
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}

@Override
public void onProviderEnabled(String provider) {

}

/*Check Permission*/
private int checkPermission(int permission) {
    int status = PackageManager.PERMISSION_DENIED;

    switch (permission) {
        case TXT_LOCATION:
            status = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION);
            break;

    }
    return status;
}

/*Request Permission*/
private void requestPermission(int permission) {

    switch (permission) {
        case TXT_LOCATION:
            ActivityCompat.requestPermissions(getActivity(), new String[]{ Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_LOCATION);
            break;
    }
}

/*Explaination*/
private void showPermissionExplanantion(final int permission) {

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    if (permission == TXT_LOCATION) {
        builder.setMessage(This app need to access you current location.. please allow);
        builder.setTitle(Location Permission Needed);
    }
    builder.setPositiveButton(try again, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            if (permission == TXT_LOCATION) {
                requestPermission(TXT_LOCATION);
            }
        }
    });
    builder.setNegativeButton(cancel, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}

manifest Permission

 <uses-permission android:name=android.permission.ACCESS_FINE_LOCATION></uses-permission>
<uses-permission android:name=android.permission.ACCESS_COARSE_LOCATION></uses-permission>

Ich erhalte keine Ausgabe auf Pixel XL, aber wenn ich auf Pixel Emulator überprüfen in Android Studio und ein anderes Gerät (mi Redmi Android-Version 6.0) es funktioniert gut. Bitte überprüfen und lassen Sie mich wissen, wo ich falsch gemacht habe.

  1. Die Lage ist nicht arbeiten Pixel xl
  2. Location Service in Anspruch nimmt lange Zeit.
  3. Warum Nullwert kommt, unter i die aus hinzugefügt setzen

Ausgabe

Danke für deine Hilfe

Veröffentlicht am 31/03/2018 um 14:08
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

Wie aktuelle Position mit voller Adresse in Android 7.0 und bove erhalten

stimmen
0

In meiner app will ich aktuellen Standort mit voller Adresse erhalten. In meinem Fall ich erhalte Lage in Android-Version weniger als 6,0

final FloatingActionButton btn = view.findViewById(R.id.locAndDate);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            if (checkPermission(TXT_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION)) {
                    showPermissionExplanantion(TXT_LOCATION);
                } else if (!permission.checkPermissionPrefrences("location")) {
                    requestPermission(TXT_LOCATION);
                    permission.updatePermission("location");
                } else {
                    Toast.makeText(getActivity(), "Please allow Location Permission in you device setting", Toast.LENGTH_SHORT).show();
                }
            } else {
                Toast.makeText(getActivity(), "Location Permission Granted", Toast.LENGTH_SHORT).show();
                getLocation();

            }

        }
    });

    return view;

}



void getLocation() {
    try {
        locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 50000, 5, this);
    } catch (SecurityException e) {
        e.printStackTrace();
    }
}

@Override
public void onLocationChanged(Location location) {

    geocoder = new Geocoder(getActivity(), Locale.getDefault());
    List<Address> addresseslList;
    try {
        addresseslList = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
        str += addresseslList.get(0).getAddressLine(0);

    } catch (IOException e) {
        e.printStackTrace();
    }
    loc.setText(str);
    System.out.print(str);
}

@Override
public void onProviderDisabled(String provider) {
    Toast.makeText(getActivity(), "Please Enable GPS and Internet", Toast.LENGTH_SHORT).show();
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}

@Override
public void onProviderEnabled(String provider) {

}

/*Check Permission*/
private int checkPermission(int permission) {
    int status = PackageManager.PERMISSION_DENIED;

    switch (permission) {
        case TXT_LOCATION:
            status = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION);
            break;

    }
    return status;
}

/*Request Permission*/
private void requestPermission(int permission) {

    switch (permission) {
        case TXT_LOCATION:
            ActivityCompat.requestPermissions(getActivity(), new String[]{ Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_LOCATION);
            break;
    }
}

/*Explaination*/
private void showPermissionExplanantion(final int permission) {

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    if (permission == TXT_LOCATION) {
        builder.setMessage("This app need to access you current location.. please allow");
        builder.setTitle("Location Permission Needed");
    }
    builder.setPositiveButton("try again", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            if (permission == TXT_LOCATION) {
                requestPermission(TXT_LOCATION);
            }
        }
    });
    builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}

manifest Permission

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>

Ich erhalte keine Ausgabe auf Pixel XL, aber wenn ich auf Pixel Emulator überprüfen in Android Studio und ein anderes Gerät (mi Redmi Android-Version 6.0) es funktioniert gut. Bitte überprüfen und lassen Sie mich wissen, wo ich falsch gemacht habe.

  1. Die Lage ist nicht arbeiten Pixel xl
  2. Location Service in Anspruch nimmt lange Zeit.
  3. Warum Nullwert kommt, unter i die aus hinzugefügt setzen

Ausgabe

Danke für deine Hilfe

Beantwortet am 31/03/2018 um 14:08
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more