Using Location Manager only if permission is already on, better error handling