GPS positioning technology

GPS positioning technology

1. Add permission
2LocationManger manger = getSystemService (Locationg_Service)
acquiring location management class
3 Location position based
getLaatitale () Gets the value of the latitude
getLongtitude () Gets the value of longitude
getAktutyde () obtaining altitude
method for obtaining address information in the call locationManager when the position is changed
requestlocationUpdate providing interval change the position location time
interval from the change in position of the listener LocationListener

Code

	  LocationManager manager;
    String[] permissions;
    boolean hasnoPermisson;
    boolean isOK = false;

    @RequiresApi(api = Build.VERSION_CODES.M)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        permissions = new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION};
        manager = (LocationManager) getSystemService(LOCATION_SERVICE);
        initPermission();
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
//             here to request the missing permissions, and then overriding
//               public void onRequestPermissionsResult(int requestCode, String[] permissions,
//                                                      int[] grantResults)
//             to handle the case where the user grants the permission. See the documentation
//             for ActivityCompat#requestPermissions for more details.
            return;
        }
        manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);


    }

    @RequiresApi(api = Build.VERSION_CODES.M)
    public void initPermission() {

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            for (String per : permissions) {
                if (checkSelfPermission(per) != PackageManager.PERMISSION_GRANTED) {
                    hasnoPermisson = true;
                    break;
                }
            }
        }
        if (hasnoPermisson) {
            requestPermissions(permissions, 100);
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == 100) {
            for (int result : grantResults) {
                if (result != PackageManager.PERMISSION_GRANTED) {
                    isOK = true;
                    break;
                }
            }
        }
        if (isOK) {
            Log.e("error", "权限没申请成功");
        }
    }

    LocationListener locationListener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
            Log.e("###经度是:", location.getLatitude() + "");
            Log.e("###维度是:", location.getLongitude() + "");
            Log.e("###海拔是:", location.getAltitude() + "");
        }

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

        }

        @Override
        public void onProviderEnabled(String provider) {

        }

        @Override
        public void onProviderDisabled(String provider) {

        }
    };

Guess you like

Origin blog.csdn.net/weixin_45038475/article/details/92713568