blob: 1e31ad7d65adcf9b8ff25a1161454d15d1c9c392 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
[DartPackage="mojo_services"]
module mojo;
import "location/public/interfaces/location.mojom";
// LocationService provides updates on the device's location.
// NOTE: This is specifically targetted towards use on Android by
// implementations which are thin wrappers over the Android Location API or the
// Google Play Services Location API. If we ever want to expand this to multiple
// platforms or if it starts growing in complexity, we should strongly consider
// use of Chromium's geolocation code.
interface LocationService {
enum UpdatePriority {
// Use this setting to request location precision to within a city block.
PRIORITY_BALANCED_POWER_ACCURACY,
// Use this setting to request the most precise location possible.
PRIORITY_HIGH_ACCURACY,
// Use this setting to request city-level precision.
PRIORITY_LOW_POWER,
// Use this setting if you need negligible impact on power consumption,
// but want to receive location updates when available.
PRIORITY_NO_POWER,
};
// Returns a location when it changes, based on |priority|. If this is the
// initial call, the last known location is returned immediately, if
// available.
// Returns NULL if the client requests a new location while a request is
// already in flight.
GetNextLocation(UpdatePriority priority) => (Location? location);
};