Archived:MIDlet cannot power down GPS module with an existing satellite fix (Known Issue)
hamishwillee
(Talk | contribs) m (Hamishwillee - Bot addition of Template:ArticleMetaData) |
hamishwillee
(Talk | contribs) m (Hamishwillee - UPdate ArticleMetaData) |
||
| Line 1: | Line 1: | ||
| + | [[Category:Java ME]][[Category:Location]][[Category:Location API (JSR-179)]][[Category:GPS]][[Category:Known Issue]] | ||
{{ArticleMetaData | {{ArticleMetaData | ||
|sourcecode= <!-- Link to example source code e.g. [[Media:The Code Example ZIP.zip]] --> | |sourcecode= <!-- Link to example source code e.g. [[Media:The Code Example ZIP.zip]] --> | ||
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | |installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | ||
| − | | | + | |devices=Nokia E90 Communicator, Nokia 6110 Navigator |
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> | |sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> | ||
| − | |platform= | + | |platform=S60 3rd Edition, Feature Pack 1 |
|devicecompatability= <!-- Compatible devices e.g.: All* (must have internal GPS) --> | |devicecompatability= <!-- Compatible devices e.g.: All* (must have internal GPS) --> | ||
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 --> | |dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 --> | ||
| Line 10: | Line 11: | ||
|capabilities=<!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. --> | |capabilities=<!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. --> | ||
|keywords= <!-- APIs, classes and methods (e.g. QSystemScreenSaver, QList, CBase --> | |keywords= <!-- APIs, classes and methods (e.g. QSystemScreenSaver, QList, CBase --> | ||
| − | |id= | + | |id=KIJ000875 |
|language=<!-- Language category code for non-English topics - e.g. Lang-Chinese --> | |language=<!-- Language category code for non-English topics - e.g. Lang-Chinese --> | ||
|review-by=<!-- After re-review: [[User:username]] --> | |review-by=<!-- After re-review: [[User:username]] --> | ||
| Line 18: | Line 19: | ||
|creationdate=20080402 | |creationdate=20080402 | ||
|author=[[User:Technical writer 1]] | |author=[[User:Technical writer 1]] | ||
| − | }} | + | }} |
| − | __NOTOC__ | + | __NOTOC__ __NOEDITSECTION__ |
| − | __NOEDITSECTION__ | + | |
{{KBKI}} | {{KBKI}} | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
==Overview== | ==Overview== | ||
| − | When using Location API's (JSR-179) methods to get a proper provider, it is not possible to stop GPS module location activity if there is a GPS satellite fix, resulting in reduced battery life. | + | {{Abstract|When using Location API's (JSR-179) methods to get a proper provider, it is not possible to stop GPS module location activity if there is a GPS satellite fix, resulting in reduced battery life.}} |
==Description == | ==Description == | ||
| Line 43: | Line 32: | ||
Example usage for acquiring location provider information with JSR-179: | Example usage for acquiring location provider information with JSR-179: | ||
| − | + | <code java> | |
.. | .. | ||
LocationProvider locProvider; | LocationProvider locProvider; | ||
| Line 49: | Line 38: | ||
locProvider = LocationProvider.getInstance(null); | locProvider = LocationProvider.getInstance(null); | ||
locProvider.setLocationListener(this, -1, 0, 0); //setting listener for LocationProvider updates | locProvider.setLocationListener(this, -1, 0, 0); //setting listener for LocationProvider updates | ||
| − | + | </code> | |
When acquiring location provider information as defined above, the Location API does not stop GPS module location activity if there is a GPS satellite fix. When the location listener is stopped and the location provider is reset, the actual receiver does not stop and it does not power down (regardless of whether the satellite fix continues to be available or not): | When acquiring location provider information as defined above, the Location API does not stop GPS module location activity if there is a GPS satellite fix. When the location listener is stopped and the location provider is reset, the actual receiver does not stop and it does not power down (regardless of whether the satellite fix continues to be available or not): | ||
| − | + | <code java> | |
locProvider.setLocationListener(null, -1, 0, 0); // setting registered listener cancelled | locProvider.setLocationListener(null, -1, 0, 0); // setting registered listener cancelled | ||
locProvider.reset(); // resetting LocationProvider by aborting all pending synchronous requests | locProvider.reset(); // resetting LocationProvider by aborting all pending synchronous requests | ||
| − | + | </code> | |
As a result, battery life is reduced to below 10 hours. | As a result, battery life is reduced to below 10 hours. | ||
| Line 67: | Line 56: | ||
Procedures: | Procedures: | ||
| − | + | # Launch Nokia Energy Profiler. From Options, choose Start to begin measurement and check the initial battery level in the top right corner. | |
| − | + | # Leave Nokia Energy Profiler running and exit it by pressing the Menu key. | |
| − | + | # Launch the test MIDlet. The MIDlet starts searching for a fix. After a fix has been found, press '''Stop GPS'''. Leave the MIDlet running and exit it by pressing the Menu key. | |
| − | + | # Resume to the Nokia Energy Profiler and check the battery level. It is now reduced to below 10 hours. | |
| − | + | # Repeat step 2. | |
| − | + | # Resume to the running MIDlet and close it by pressing Exit. | |
| − | + | # Repeat step 4. The battery level will be slowly resumed. Close the Profiler by pressing Exit. Relaunch the Profiler and start the measurement again to view the improved battery level. | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| Line 85: | Line 68: | ||
Exiting the MIDlet results in improved battery level. | Exiting the MIDlet results in improved battery level. | ||
| − | |||
| − | |||
| − | |||
Revision as of 09:17, 14 November 2011
Article Metadata
Tested with
Compatibility
Article
Overview
When using Location API's (JSR-179) methods to get a proper provider, it is not possible to stop GPS module location activity if there is a GPS satellite fix, resulting in reduced battery life.
Description
Location API's getInstance(Criteria criteria) method selects the location provider based on the defined criteria, where the value null indicates the least restrictive criteria with default values.
Example usage for acquiring location provider information with JSR-179:
..
LocationProvider locProvider;
..
locProvider = LocationProvider.getInstance(null);
locProvider.setLocationListener(this, -1, 0, 0); //setting listener for LocationProvider updates
When acquiring location provider information as defined above, the Location API does not stop GPS module location activity if there is a GPS satellite fix. When the location listener is stopped and the location provider is reset, the actual receiver does not stop and it does not power down (regardless of whether the satellite fix continues to be available or not):
locProvider.setLocationListener(null, -1, 0, 0); // setting registered listener cancelled
locProvider.reset(); // resetting LocationProvider by aborting all pending synchronous requests
As a result, battery life is reduced to below 10 hours.
How to reproduce
Download and install Nokia Energy Profiler.
Implement a test MIDlet using this source code.
Procedures:
- Launch Nokia Energy Profiler. From Options, choose Start to begin measurement and check the initial battery level in the top right corner.
- Leave Nokia Energy Profiler running and exit it by pressing the Menu key.
- Launch the test MIDlet. The MIDlet starts searching for a fix. After a fix has been found, press Stop GPS. Leave the MIDlet running and exit it by pressing the Menu key.
- Resume to the Nokia Energy Profiler and check the battery level. It is now reduced to below 10 hours.
- Repeat step 2.
- Resume to the running MIDlet and close it by pressing Exit.
- Repeat step 4. The battery level will be slowly resumed. Close the Profiler by pressing Exit. Relaunch the Profiler and start the measurement again to view the improved battery level.
Solution
Exiting the MIDlet results in improved battery level.

