Commit Graph

399 Commits

Author SHA1 Message Date
Maggie
2e17d3f4f8 Remove javadoc for return value
LocationManager#setLocationEnabledForUser has documentation for return value even though it's void. Fix the bug by removing the return javadoc.

Bug: 73751024
Test: Manual
Change-Id: I785e9f08674f472fe0f248972d5cc6055e64412a
2018-03-02 11:46:59 -08:00
Jeff Sharkey
98af2e4fec Add RequiresFeature annotation.
Certain APIs require that a device have a specific feature to operate
correctly, so start annotating them.

Test: builds, boots
Bug: 72284763
Change-Id: Ie2f30284bdfdb6acc4067f434eba3b5433837606
Exempt-From-Owner-Approval: simple annotations
2018-02-16 20:45:22 +00:00
Maggie
9ca162532e Check for null LOCATION_PROVIDERS_ALLOWED value
After reading LOCATION_PROVIDERS_ALLOWED value from settings provider,
check for null first.

Bug: 72711160
Bug: 72732478
Test: Manual
Change-Id: I813e40f11f078d80c4cc20986f030fdadfe433c6
2018-02-07 16:19:42 -08:00
Maggie Wang
6fdf781aa7 Merge "LocationManager constants for footer injector" 2018-02-06 02:35:24 +00:00
Maggie
589f038d63 LocationManager constants for footer injector
Add broadcast actions and metadata names in LocationManager for
injecting footers under Settings -> Security & Location -> Location.

Bug: 70350519
Test: Manual
Change-Id: I4d187a54cd87d8964d84bfef44515ac9ef77db29
2018-02-01 18:23:13 -08:00
Lifu Tang
c84d42e7d6 Remove unused methods from LocationManagerService
Test: Built and Manually tested
Change-Id: I7e13d51864d86054eb9394704927dc4d449c0b13
2018-02-01 18:56:53 +00:00
Siddharth Ray
d679a767b4 GPS power metrics
Power metrics is added to GPS metrics

BUG:72383800

Test: Manual
Change-Id: I6b01c04984b750c6e079e26b2ad4730d647be382
2018-01-30 10:12:15 -08:00
Lifu Tang
7c30c68cc5 Move location-related code into client library
These first-party only methods can only be called by privileged
packages, and Settings.Secure already applies strict permission check to
them. Therefore moving the code into client library can save us from
unnecessary binder calls, and can also make checking the caller package
name much easier.

Test: Manual
Change-Id: I76a939a660357f87b01ff4ac07ec3f17093d3c41
2018-01-26 16:42:05 -08:00
Maggie
aa080f9676 Deprecate location modes
1. Mark public fields as deprecated: LOCATION_MODE, LOCATION_MODE_HIGH_ACCURACY, LOCATION_MODE_SENSORS_ONLY,
LOCATION_MODE_BATTERY_SAVING, LOCATION_MODE_OFF.

2. Add new public  methods to LocationManager:
setLocationEnabled(boolean)
isLocationEnabled()
setLocationProviderEnabled(String, boolean)

3. Remove LOCATION_PREVIOUS_MODE and constant
LOCATION_MODE_PREVIOUS. Refactor code that references
LOCATION_MODE_PREVIOUS to use LocationManager.setLocationEnabled or
LOCATION_MODE_HIGH_ACCURACY.

4. Mark deprecated fields and methods as removed: LOCATION_PROVIDERS_ALLOWED, setLocationProviderEnabled(), isLocationProviderEnabled()

5. Refactor logic in Settings app and Quick Settings to call
LocationManager.setLocationEnabled() instead of setting location mode.

Bug: 70990911
Test: Manual
Change-Id: Ia49b385f8b6a358b62291983eb0146af0ecf8e02
2018-01-23 10:45:49 -08:00
Siddharth Ray
f87fe48456 Merge "GPS Signal Quality added to BatteryStats" 2018-01-19 21:40:07 +00:00
Siddharth Ray
78ccaf5d28 GPS Signal Quality added to BatteryStats
- GPS Signal Quality (Top four average CN0) added to Batterystats
(Aggregate + Historian)

- Added API to obtain Gps battery stats for power drain diagnostics.

BUG:38354997

Test: Manual
(https://docs.google.com/document/d/1X6g7HBZ80GA3KuqEYyQtD0WQRUnXN8nbCpf0G1HvzqY/edit?usp=sharing)

Change-Id: Ic23bfa758977bf0677f368f617b0c28196d2d0c1
2018-01-15 17:24:07 -08:00
Ram Periathiruvadi
8671feab63 Add a hidden API to inject location.
New API allows system clients with LOCATION_HARDWARE and
ACCESS_FINE_LOCATION to inject a location to the Location Manager.  This
is useful in products like Auto, where the location needs to be cached
across reboots.

Bug: b/64125396
Test: Foll. were tested:
1. location can be injected when lastLocation is not available
2. location cannot be injected when lastLocation is already available
Also, tested location availability on different devices for sanity.
Change-Id: I1fd060caafed0431074ae64439ac52e99e0d6032
2018-01-08 08:25:17 -08:00
Wyatt Riley
d87cf91762 Providing GNSS Model Name & Year
GNSS Model Year moves from a TestApi to public
GNSS Model Name is connected from a new .hal to public

Bug: 38003769
Test: Builds, works with CTS & Test App on Pixel 2
Change-Id: I3e0a56c60e1a4d298e120df11ffd37b06ecea050
2017-12-21 13:07:03 -08:00
gomo
48f1a64765 Duty Cycling and Low Power Mode GNSS feature implementations
Implementaion of 2 GNSS Android-P features:
- The Duty Cycling API to enable high accuracy applications development
- The Low Power Mode GNSS API to save power when indoor

Bug: 64009176
Test: Existing unit tests still pass.
Change-Id: I3ba3b86a635a54927c694fdd66a038757e843937
2017-12-13 13:38:31 -08:00
Maggie
fab2e2cbaa Send MODE_CHANGING broadcast before location mode change.
When location mode is about to change in Settings app, send
MODE_CHANGING broadcast.

Fixes: 28057031
Test: manual
Test: robotests
Change-Id: Id26325520211a8934c1670dfcd12e8d339766308
2017-12-07 23:22:35 +00:00
TreeHugger Robot
bb6468ba73 Merge "Fixing javadoc typo from gerrit 3027804" 2017-10-31 23:52:11 +00:00
Wyatt Riley
818347f056 Fixing javadoc typo from gerrit 3027804
Bug: 65369254
Test: Automated build/sanity only - just a comment change
Change-Id: I819b2f11f91454719269927ae93382253170938e
2017-10-31 14:12:27 -07:00
Wyatt Riley
e10c61a5f7 Clarifying GnssClock field
Based on partner feedback

Test: Doc only - build-check
Change-Id: I30ba539f5baad69aeb6973167067265b22964cc4
2017-10-25 14:13:56 -07:00
Wyatt Riley
252e0908bd Location & GNSS Measurement Documetation Fixes
Clarifying documenation of SNR, Vertical Accuracy, and
Accumulated Delta Range.

Change-Id: I2684c57e0f4aff2925549e01cbe4f546910f93e0
Fixes: 65369254
Test: Builds (comments only)
2017-10-18 15:27:30 -07:00
Wyatt Riley
70e34ce4c5 Correcting Speed and Bearing Uncertainty Doc
Test: Build by treehugger, code review as comments only.
Change-Id: Ib072bf42c51af8e91ae7554097e839316956dea1
2017-08-31 08:47:24 -07:00
Wyatt Riley
43336af356 Remove misleading Location Accuracy comment
Test: Treehugger to verify build (comment only)
Change-Id: Iea3c473219e21a58b01e613d14700d6972f5cce6
2017-08-08 15:24:44 -07:00
Siddharth Ray
168f12a056 Average of top 4 CNO
Addition of average of top 4 CNO to GNSS metrics

BUG: 62727230
Change-Id: Icef0ff5c25596fc1ae787907c0aea305eaf156d6
2017-07-10 19:00:27 +00:00
Wyatt Riley
7f2cfed525 Ensure complete GnssStatus construction
Using volatile reference & final member pattern.

Bug: 37517406
Test: basic GNSS & GPS Status output works
Change-Id: I5650149e0a3f63a52734c8f044d38f3956819921
2017-06-28 15:13:10 -07:00
Jeff Sharkey
28f6dc9512 Merge "Give Doclava our manifest; more permission docs." into oc-dev am: 65d4cbba37
am: 67cb5f5210

Change-Id: Ic4c30cdb8bbfda5b3703eb3c7c36c1bf8ab3a216
2017-06-06 16:17:39 +00:00
Jeff Sharkey
ec68b46bc8 Merge "Annotate @SystemApi with required permissions." into oc-dev am: c1406978a4
am: 7a2e4a8486

Change-Id: Ib629e25dbf047c110feaf03e4ff744b5c6df9aeb
2017-06-06 15:48:24 +00:00
Jeff Sharkey
bfc4fcde9f Give Doclava our manifest; more permission docs.
We've seen some @SystemApi methods protected with non-system
permissions, so give Doclava the platform AndroidManifest.xml so it
can parse the actual permission protection levels to look for APIs
that are letting in non-system apps.

Also document more @SystemApi permissions.

This is purely a docs change; no logic changes are being made.

Test: make -j32 update-api
Bug: 62263906
Change-Id: Ie0f0a5fb0033817bcc95060f2183a52ae4ae7b06
2017-06-05 17:38:19 -06:00
Jeff Sharkey
d86b8fea43 Annotate @SystemApi with required permissions.
Most @SystemApi methods should be protected with system (or higher)
permissions, so annotate common methods with @RequiresPermission to
make automatic verification easier.

Verification is really only relevant when calling into system
services (where permissions checking can happen on the other side of
a Binder call), so annotate managers with the new @SystemService
annotation, which is now automatically documented.

This is purely a docs change; no logic changes are being made.

Test: make -j32 update-api && make -j32 offline-sdk-docs
Bug: 62263906
Change-Id: I2554227202d84465676aa4ab0dd336b5c45fc651
2017-06-05 13:27:11 -06:00
Wyatt Riley
455c3037c1 Fix typo in Galileo TOW flag
Test: Builds, code inspect it's just comments.
Change-Id: I014f9a418f8d2845fbdc83f79298fe9f604e5f80
2017-05-11 10:06:47 -07:00
Siddharth Ray
dff73b6a04 Merge "Added Channel for Network Initiated Notifications" into oc-dev am: 84ed81ed39
am: e24e12df35

Change-Id: Id050d77a7df66451311713cdd54209109cda9d7a
2017-05-02 23:27:43 +00:00
Siddharth Ray
1d35540315 Added Channel for Network Initiated Notifications
Bug=37659896

Change-Id: I1c04a9455c320330efbcb92c352fc31b16ed8378
2017-05-02 20:44:08 +00:00
Yipeng Cao
f9045a9c52 Merge "Fixed the hasCarrierFrequency flag in GnssStatus (part1)" into oc-dev am: 80e1b2fc56
am: d78417d6cc

Change-Id: I804d261ffe382ea283fdbbd0e3973810a723315e
2017-04-29 22:49:26 +00:00
Yipeng Cao
2171781a7c Fixed the hasCarrierFrequency flag in GnssStatus (part1)
Bug: 37757180
Fixes: 37757180
Test: 1. built img locally and flash the device
make -j 40 
vendor/google/tools/flashall
2. run cts
cts-tradefed run cts -m CtsLocationTestCases --test
android.location.cts.GnssStatusTest

Change-Id: I5046dbe28518812192de20daca91a8511a1558c0
2017-04-28 02:11:59 +00:00
Yu Liu
4a1d2779d5 Merge "Remove newly added remove methods in Location and deprecate the old ones, this is the request from the android API council Test: Existing unit tests still pass. BUG: 36552859" into oc-dev am: 500c1d0749
am: 3c68867864

Change-Id: I3233a604cda1ca48fad524b5c02d54847d67cfc0
2017-04-19 01:46:47 +00:00
Yu Liu
b87243cb43 Remove newly added remove methods in Location and deprecate the old ones, this is the request from the android API council
Test: Existing unit tests still pass.
BUG: 36552859

Change-Id: Ib4cdcef90be3d5b3be329dd780bcb40275b89ef4
2017-04-18 16:12:16 -07:00
Yu Liu
c831fe6183 Merge "Fix some issues came up from the reviews of the newly added APIs Test: Existing unit tests still pass. BUG: 36554361 Change-Id: I6c2dab2e0df7f8578f92c70907f45aa69909892c" into oc-dev am: e425b366ba
am: 5303f33bdc

Change-Id: I138cf20ba4b804fb3627458acf6796203c37be39
2017-04-14 15:30:05 +00:00
TreeHugger Robot
efb8882b47 Merge "ECBM SystemProperty cleanup" into oc-dev 2017-04-13 19:53:14 +00:00
Yu Liu
5303f33bdc Merge "Fix some issues came up from the reviews of the newly added APIs Test: Existing unit tests still pass. BUG: 36554361 Change-Id: I6c2dab2e0df7f8578f92c70907f45aa69909892c" into oc-dev
am: e425b366ba

Change-Id: I371260b7a82bbda02f978c2396385c96fd03ec66
2017-04-13 19:34:48 +00:00
Yu Liu
0e342e1fdb Fix some issues came up from the reviews of the newly added APIs
Test: Existing unit tests still pass.
BUG: 36554361
Change-Id: I6c2dab2e0df7f8578f92c70907f45aa69909892c
2017-04-12 23:02:35 +00:00
Shuo Qian
cfe9e61ce4 ECBM SystemProperty cleanup
- Add getEmergencyCallbackMode() method in the TelephonyManager.java
to get the boolean value for ECBM callback mode from the phone through
ITelephony.aidl/java interface

- Use the added TelephonyManager Api to replace the 'get' of
PROPERTY_INECM_MODE system property in the framework/base

Change-Id: I83fbdeef5c0b43a8fc16ece044c9e191e9922bce
Test: manual
Bug: 30361624
2017-04-12 22:36:00 +00:00
Shuo Qian
c77146ceb1 Merge "ECBM SystemProperty cleanup" am: 4718606368 am: 40cde7b71f am: 36611a0958
am: 56d3af6680

Change-Id: Ida75e1835bc99a328baeee71b6838581800916b0
2017-04-12 22:11:17 +00:00
Shuo Qian
56d3af6680 Merge "ECBM SystemProperty cleanup" am: 4718606368 am: 40cde7b71f
am: 36611a0958

Change-Id: Ib68a4e3b34ad4d76e4b254350b523eaa424b30f9
2017-04-12 21:11:58 +00:00
shuoq
d199113e97 ECBM SystemProperty cleanup
- Add getEmergencyCallbackMode() method in the TelephonyManager.java
to get the boolean value for ECBM callback mode from the phone through
ITelephony.aidl/java interface

- Use the added TelephonyManager Api to replace the 'get' of
PROPERTY_INECM_MODE system property in the framework/base

Test: manual
Bug: 30361624

Change-Id: I355d69820b157f23e077a95a13f8509ee0fa5874
2017-04-11 14:59:29 -07:00
Siddharth Ray
bb608c8958 Addition of GNSS key performance indicator logs
Bug: 35963181
Test: Manual
Change-Id: Ibbc8986eb5c52b8e0065b5fd2fdb8579eda11949
2017-04-05 12:00:08 -07:00
Soonil Nagarkar
681d711200 Throttle GNSS measurements and GNSS navigation
messages in background (completely).

Test: manual
Change-Id: I32e3572c5ce32cd39b22e62f6b3499d292e1badc
2017-02-24 12:28:32 -08:00
Wyatt Riley
cf879db366 GNSS Batching - Default Implementation
Connections from .hal layer, through to
Location Manager System APIs

Bug: 31974439
Test: builds, boots, ordinary GNSS & new GNSS batching
      basic functional checks on Marlin
Change-Id: If75118c27b5ed34cfc16c9f817b60a3be5485095
2017-02-07 14:55:21 -08:00
gomo
d1e856cb9e Make the comments of some of the raw GNSS measurements more clear.
Test: Existing unit tests still pass.

Change-Id: I8c0a506b2c9f7979f8cdb33c9e65db53ff1c4b2b
2017-01-22 22:45:09 -08:00
gomo
127ba323d9 Unhide public methods for API Council review.
Test: Existing unit tests still pass.
Change-Id: I49b81f99e4e8d8300fbc6b3d74f336d4f291d171
2017-01-18 19:48:28 -08:00
gomo
4402af6be9 GNSS O Features according to go/o-gps-hal
Added "Tow Known" as a possible gnss measurement state. As well added Automatic Gain Control (AGC)
to allow jammer detection. Also added the GNSS carrier frequeny to SV status. Also added vertical
GPS position uncertainty, speed uncertainty and bearing uncertainty. Also propagate locaton new
fields to geofence engine.
Test: Existing unit tests still pass.

Change-Id: I472b2fd2516cb7614877dea4bb054a34f50844dc
2017-01-15 18:02:21 -08:00
Wyatt Riley
a2bbfbcf89 Removing @removed methods and constants
Several methods, plus a few hashmaps,
helper classes, and some constants
existed for an early builds
of NYC, and were marked @removed, and are
here finally removed.

Bug: 28208055
Change-Id: If650d83c0dc573e922342d09360ecf9a5bb0c98a
Fixes: 28208055
Test: GMaps, AndroiTS GPS Test, GnssLogger & CtsVerifier
      All run fine on a Pixel
2016-12-23 13:18:16 -08:00
Jeff Sharkey
c06f184ae9 Move dump() to dumpAsync(), more oneway calls.
When calling out to dump services hosted by external apps, use
dumpAsync() to avoid hanging if the remote process is wedged.

Test: builds, boots, runs with minimal logs triggered
Bug: 32715088
Change-Id: I70aa2666ae21dae8f09ded2063bed359c0b210c5
2016-12-02 15:17:20 -08:00