Psycop Posted November 20, 2016 at 02:39 PM Report #600721 Posted November 20, 2016 at 02:39 PM Boa tarde, Estou a tentar colocar a funcionar um projecto open-source encontrado na internet mas estou com alguns problemas ao tentar implementar as permissões para o Location agora exigidas pelo compileSdkVersion 23 e buildToolsVersion "23.0.1" que quero utilizar. O código em que estou a usar pode ser encontrado aqui: https://github.com/vyshane/rex-weather /** * Implement an Rx-style location service by wrapping the Android LocationManager and providing * the location result as an Observable. */ public class LocationService { private final LocationManager mLocationManager; public LocationService(LocationManager locationManager) { mLocationManager = locationManager; } public Observable<Location> getLocation() { return Observable.create(new Observable.OnSubscribe<Location>() { @Override public void call(final Subscriber<? super Location> subscriber) { final LocationListener locationListener = new LocationListener() { public void onLocationChanged(final Location location) { subscriber.onNext(location); subscriber.onCompleted(); Looper.myLooper().quit(); } public void onStatusChanged(String provider, int status, Bundle extras) { } public void onProviderEnabled(String provider) { } public void onProviderDisabled(String provider) { } }; final Criteria locationCriteria = new Criteria(); locationCriteria.setAccuracy(Criteria.ACCURACY_COARSE); locationCriteria.setPowerRequirement(Criteria.POWER_LOW); final String locationProvider = mLocationManager .getBestProvider(locationCriteria, true); Looper.prepare(); 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; } mLocationManager.requestSingleUpdate(locationProvider, locationListener, Looper.myLooper()); Looper.loop(); } }); } } O meu problema está no 'this' da permissão, o qual tem como erro o seguinte: Citação checkSelfPermission(android.content.Context,String)in ContextCompat cannot be applied to(anonymous rx.Observable.OnSubscribe<android.location.Location>,String) Eu não sei como colocar isto a funcionar, se alguém me puder dar uma ajuda agradecia. Cumps
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now