You are previewing Learning Android.

Learning Android

Cover of Learning Android by Marko Gargenta Published by O'Reilly Media, Inc.
  1. Learning Android
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. A Note Regarding Supplemental Files
    3. Preface
      1. What’s Inside
      2. Conventions Used in This Book
      3. Using Code Examples
      4. Safari® Books Online
      5. How to Contact Us
      6. Acknowledgments
    4. 1. Android Overview
      1. Android Overview
      2. History
      3. Android Versions
      4. Summary
    5. 2. The Stack
      1. Stack Overview
      2. Linux
      3. Native Libraries
      4. Dalvik
      5. Application Framework
      6. Applications
      7. Summary
    6. 3. Quick Start
      1. Installing the Android SDK
      2. Hello, World
      3. The Emulator
      4. Summary
    7. 4. Main Building Blocks
      1. What Are Main Building Blocks?
      2. A Real-World Example
      3. Activities
      4. Intents
      5. Services
      6. Content Providers
      7. Broadcast Receivers
      8. Application Context
      9. Summary
    8. 5. Yamba Project Overview
      1. The Yamba Application
      2. Design Philosophy
      3. Project Design
      4. Part 1: Android User Interface
      5. Part 2: Preferences, Filesystem, Options Menu, and Intents
      6. Part 3: Android Services
      7. Part 4: Working with Databases
      8. Part 5: Lists and Adapters
      9. Part 6: Broadcast Receivers
      10. Part 7: Content Providers
      11. Part 8: System Services
      12. Summary
    9. 6. Android User Interface
      1. Two Ways to Create a User Interface
      2. Views and Layouts
      3. Starting the Yamba Project
      4. The StatusActivity Layout
      5. The StatusActivity Java Class
      6. Logging in Android
      7. Threading in Android
      8. Other UI Events
      9. Adding Color and Graphics
      10. Alternative Resources
      11. Optimizing the User Interface
      12. Summary
    10. 7. Preferences, the Filesystem, the Options Menu, and Intents
      1. Preferences
      2. The Options Menu
      3. Shared Preferences
      4. The Filesystem Explained
      5. Summary
    11. 8. Services
      1. The Yamba Application Object
      2. UpdaterService
      3. Looping in the Service
      4. Pulling Data from Twitter
      5. Summary
    12. 9. The Database
      1. About SQLite
      2. DbHelper
      3. First Example
      4. Update UpdaterService
      5. Refactoring Status Data
      6. Summary
    13. 10. Lists and Adapters
      1. TimelineActivity
      2. Basic TimelineActivity Layout
      3. About Adapters
      4. TimelineAdapter
      5. ViewBinder: A Better Alternative to TimelineAdapter
      6. Updating the Manifest File
      7. Base Activity
      8. Summary
    14. 11. Broadcast Receivers
      1. About Broadcast Receivers
      2. BootReceiver
      3. The TimelineReceiver
      4. Broadcasting Intents
      5. The Network Receiver
      6. Adding Custom Permissions to Send and Receive Broadcasts
      7. Summary
    15. 12. Content Providers
      1. Creating a Content Provider
      2. Using Content Providers Through Widgets
      3. Summary
    16. 13. System Services
      1. Compass Demo
      2. Location Service
      3. Updating Yamba to Use the Location Service
      4. Intent Service
      5. Sending Notifications
      6. Summary
    17. 14. The Android Interface Definition Language
      1. Implementing the Remote Service
      2. Implementing the Remote Client
      3. Summary
    18. 15. The Native Development Kit (NDK)
      1. What Is and Isn’t the NDK For?
      2. Problems Solved by the NDK
      3. An NDK Example: Fibonacci
      4. Summary
    19. Index
    20. About the Author
    21. Colophon
    22. SPECIAL OFFER: Upgrade this ebook with O’Reilly

Location Service

Now that you have seen how the sensor manager works, we can look at the Location API, another system service provided by Android. Just like sensors, the Location API is supported via the Location manager. And just like sensors, we get the Location manager via a getSystemService() call.

Once we have access to the Location service, we need to register a Location listener with it so the service can call back when there’s a change in location. Again, we’ll do this by implementing a Location listener interface.

If you recall from Common Steps in Using System Services, processing GPS and other location updates can be very taxing for the battery. To minimize the battery consumption, we want to listen to location updates only while in the running state. To do that, we’ll register for the updates in onResume() and unregister in onPause(), taking advantage of the activity life cycle.

Where Am I? Demo

This example illustrates how to use location-based services in Android. First, we use LocationManager to figure out our current location based on the resources in the environment available to the device, such as GPS or a wireless network. Second, we use Geocoder to convert this location to an address.

The layout

The layout for this example is trivial, as you can see in Example 13-3. Our resource file provides a TextView widget for the title and another TextView widget for the output. Since the output could be longer than the screen size, we wrap the output in a ScrollView widget.

The best content for your career. Discover unlimited learning on demand for around $1/day.