Πώς να πάρει την τρέχουσα θέση με την πλήρη διεύθυνση στο Android 7.0 και Bove

ψήφοι
0

Σε εφαρμογή μου θέλω να πάρει την τρέχουσα θέση με την πλήρη διεύθυνση. Στην περίπτωσή μου έχω αρχίσει τοποθεσία στην έκδοση Android μικρότερη από 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();
}

Προδήλως άδεια

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

Δεν έχω κανένα έξοδο για Pixel XL, αλλά όταν μπορώ να ελέγξω σε pixel εξομοιωτή στο Android στούντιο και άλλη συσκευή (mi redmi το Android έκδοση 6.0) δουλεύει μια χαρά. ελέγξτε και επιτρέψτε μου να γνωρίζουν πού έκανα λάθος.

  1. Η τοποθεσία δεν εργάζονται σε pixel xl
  2. Η υπηρεσία τοποθεσίας πάρει πολύ χρόνο.
  3. Γιατί μηδενική αξία έρχεται, κάτω από πρόσθεσα το έξω θέσει

Παραγωγή

Σας ευχαριστώ για να σας βοηθήσει

Δημοσιεύθηκε 31/03/2018 στις 14:08
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

Πώς να πάρει την τρέχουσα θέση με την πλήρη διεύθυνση στο Android 7.0 και Bove

ψήφοι
0

Σε εφαρμογή μου θέλω να πάρει την τρέχουσα θέση με την πλήρη διεύθυνση. Στην περίπτωσή μου έχω αρχίσει τοποθεσία στην έκδοση Android μικρότερη από 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();
}

Προδήλως άδεια

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

Δεν έχω κανένα έξοδο για Pixel XL, αλλά όταν μπορώ να ελέγξω σε pixel εξομοιωτή στο Android στούντιο και άλλη συσκευή (mi redmi το Android έκδοση 6.0) δουλεύει μια χαρά. ελέγξτε και επιτρέψτε μου να γνωρίζουν πού έκανα λάθος.

  1. Η τοποθεσία δεν εργάζονται σε pixel xl
  2. Η υπηρεσία τοποθεσίας πάρει πολύ χρόνο.
  3. Γιατί μηδενική αξία έρχεται, κάτω από πρόσθεσα το έξω θέσει

Παραγωγή

Σας ευχαριστώ για να σας βοηθήσει

Απαντήθηκε 31/03/2018 στις 14:08
πηγή χρήστη

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