位置权限无效

时间:2018-08-01 18:19:57

标签: android location locationmanager

我想检查设备位置的天气,但是当我单击按钮时,此代码行不起作用。 有两个活动,即第一活动和第二活动。代码和按钮在第二个活动中,仍然不起作用。它什么都不做。当我简单地登录到onLocation()-时,它可以工作,但是位置管理器或侦听器却不能。我认为上下文可能有问题,但不知道如何解决。 但是在单个活动中效果很好。请帮忙!

public void onLocation(View view){

    locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
    locationListener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {

            String latitude = String.format("%.2f",location.getLatitude());
            String longitude = String.format("%.2f",location.getLongitude());


            DownloadTask task = new DownloadTask();
            String result = "";
            try {
                result = task.execute("https://api.openweathermap.org/data/2.5/weather?lat=" + latitude + "&lon=" + longitude + "&appid=c940e43a5462f3c3b228e3812b747b25").get();
            } catch (Exception e) {
                e.printStackTrace();
            }

            Log.i("location weather",result);
            locationManager.removeUpdates(this);
        }

        @Override
        public void onStatusChanged(String s, int i, Bundle bundle) {

        }

        @Override
        public void onProviderEnabled(String s) {

        }

        @Override
        public void onProviderDisabled(String s) {

        }
    };

    if(ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED){

        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locationListener);
    } else {
        ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},1);
    }


}

0 个答案:

没有答案