Showing posts with label GPS. Show all posts
Showing posts with label GPS. Show all posts

Friday, October 09, 2015

Google Location Services API - Kapil Sharma

Google Location Services API:  

Author(Danny) - http://goo.gl/d55bpz

Package “android.location”

The package “android.location” has been available since Android was first introduced, and it gives us access to location services. These services allow applications to obtain periodic updates of the device’s geographical location.
The package provides two means of acquiring location data:
  • LocationManager.GPS_PROVIDER: Determines location using satellites. Depending on the conditions, this provider may take a while to return a location fix.
  • LocationManager.NETWORK_PROVIDER: Determines location based on availability of nearby cell towers and WiFi access points. This is faster than GPS_PROVIDER.
When you are looking for user location you have to play with these providers and their availability. Ideally you obtain the first location using NETWORK_PROVIDER, which might not be as accurate, but is much faster. You might then make an attempt to increase accuracy by listening for a better location fix using the GPS_PROVIDER.

Google Location Services API

Google Location Services API, also known as FusedLocationProviderApi, is Google’s recommended way of getting a user’s location. It provides the best accuracy based on our needs. Some of the advantages of using this API over the previous one are:
  • Simplicity: Unlike the previous API, you no longer have to deal with multiple providers. Instead, you specify high-level needs, such as “high accuracy” or “low power”, and it will take a suitable approach.
  • Availability: Gives your app immediate access to the best, most recent known location. Usually this information is readily available, you just have to ask for it.
  • Power-efficiency: Minimizes your application’s usage of power.
  • Versatility: Meets a wide range of needs, from foreground uses - needing highly accurate location data, to background uses - requiring only periodic location updates with negligible power impact.

    Requesting Permission, Configuring AndroidManifest.xml
    Androids have specific security features that would prevent any arbitrary application from requesting a precise user location. To solve this, we need to edit “AndroidManifest.xml” and add the permission we require for this application:

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    
    While we are at it, we should also define the version of Google Play Services we are using for this application:
    <meta-data android:name="com.google.android.gms.version"
               android:value="@integer/google_play_services_version" />
    

    Checking for Google Play Services Availability: 

    Before accessing features provided by Google Play Services, we must check if the device has Google Play Services installed, and that the version is the one we intend to use (6.5.87).

    private boolean checkGooglePlayServices(){
     int checkGooglePlayServices = GooglePlayServicesUtil
      .isGooglePlayServicesAvailable(mContext);
     if (checkGooglePlayServices != ConnectionResult.SUCCESS) {
      /*
      * Google Play Services is missing or update is required
      *  return code could be
      * SUCCESS,
      * SERVICE_MISSING, SERVICE_VERSION_UPDATE_REQUIRED,
      * SERVICE_DISABLED, SERVICE_INVALID.
      */
      GooglePlayServicesUtil.getErrorDialog(checkGooglePlayServices,
      mContext, REQUEST_CODE_RECOVER_PLAY_SERVICES).show();
    
      return false;
     }
    
     return true;
    }
    
    This method will check for Google Play Services, and in case the device doesn’t have it installed (it’s rare, but I’ve seen such cases), it will open a dialog with the corresponding error and invite the user to install/update Google Play Services from the Google Play Store.

    Accessing Google APIs

    To access Google APIs, we just need to perform one more step: create an instance of GoogleApiClient. The Google API Client provides a common entry point to all the Google Play services, and manages the network connection between the user’s device and each Google service.
    Github Source: https://github.com/dtrejogo/google-location-services-api

Thursday, March 28, 2013

Nexus 5 (Rumored):



Nexus 5: 




Hardware specs: 

Screen: 5-inch 1080p display.

Processor: Snapdragon 600 CPU processor.
Battery: 3,140mAh. 
RAM: 2.5 or 3GB.
Camera: 9MP (CCD Nikon)

OR 


Screen: 5.2-inch IPS display.

Battery: 2,900mAh. 
RAM: 3GB. 
Processor: Qualcomm Snapdragon 800 at 2.1GHz.
Camera: 16MP.

Monday, May 04, 2009

Native Google Maps, Geocoding, and Location-Based Services :

Native map support lets you create a range of map-based applications that leverage the mobility of Android devices. Android lets you create activities that include interactive Google Maps as part of your user interface with full access to maps that you can control programmatically and annotate using Android’s rich graphics library.

Android’s location-based services manage technologies like GPS and Google’s GSM cell-based location technology to determine the device’s current position. These services enforce an abstraction from spe-cifi c location-detecting technology and let you specify minimum requirements (e.g., accuracy or cost) rather than choosing a particular technology.

It also means that your location-based applications will work no matter what technology the host handset supports. To combine maps with locations, Android includes an API for forward and reverse geocoding that lets you fi nd map coordinates for an address, and the address of a map position.

Thursday, April 23, 2009

Access to Hardware including Camera, GPS, and Accelerometer :

Android includes API libraries to simplify development involving the device hardware. These ensure that you don’t need to create specifi c implementations of your software for different devices, so you can create Android applications that work as expected on any device that supports the Android software stack.

The Android SDK includes APIs for location-based hardware (such as GPS), camera, network connec-tions, Wi-Fi, Bluetooth, accelerometers, touch screen, and power management.