Hoe je huidige locatie met volledige adres in Android 7.0 en bove

stemmen
0

In mijn aanvraag Ik wil huidige locatie met volledige adres. In mijn geval ik krijg locatie in Android-versie minder dan 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 Toestemming

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

Ik heb geen uitgang van Pixel XL krijgen, maar toen ik controleren op pixel emulator in android studio en een ander apparaat (mi redmi Android versie 6.0) het werkt prima. kijk dan op en laat me weten waar heb ik verkeerd.

  1. Locatie is niet bezig met pixel xl
  2. Locatie dienst nemen lange tijd.
  3. Waarom nulwaarde komt, onder i voegde de uit te zetten

uitgang

Dankje voor je hulp

De vraag is gesteld op 31/03/2018 om 14:08
bron van user
In andere talen...                            


1 antwoorden

Hoe je huidige locatie met volledige adres in Android 7.0 en bove

stemmen
0

In mijn aanvraag Ik wil huidige locatie met volledige adres. In mijn geval ik krijg locatie in Android-versie minder dan 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 Toestemming

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

Ik heb geen uitgang van Pixel XL krijgen, maar toen ik controleren op pixel emulator in android studio en een ander apparaat (mi redmi Android versie 6.0) het werkt prima. kijk dan op en laat me weten waar heb ik verkeerd.

  1. Locatie is niet bezig met pixel xl
  2. Locatie dienst nemen lange tijd.
  3. Waarom nulwaarde komt, onder i voegde de uit te zetten

uitgang

Dankje voor je hulp

antwoordde op 31/03/2018 om 14:08
bron van user

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