Using Garmin GLO GPS receiver with Android application - android

Has anyone used the new Garmin GLO GPS receiver? Has anyone successfully integrated it with their mobile application? I was interested in using it in order to get more accurate GPS coordinates in my Android application, but would like to get some feedback from others before I buy one.
The Garmin website does not mention if there is an API available to retreive the GPS coordinates, it simply states, "Using Bluetooth technology, GLO wirelessly pairs to your mobile device. Just set GLO within range of your mobile device and in moments you’ll be receiving GLO’s position data."
How can you retreive this position data? Will applications on the device, such as Goolgle Maps, just get this data automatically? Any info or feedback about the device would be greatly appreciated.
More info on the device can be found at the following link:
https://buy.garmin.com/shop/shop.do?pID=109827&ra=true
Todd

This question seems to get a decent amount of traffic and could use a more thorough answer.
Garmin probably feels justified in saying this:
Just set GLO within range of your mobile device and in moments you’ll be receiving GLO’s position data
because on iOS you can connect to the GLO and iOS uses the location information from the GLO to supply more accurate information to any device using the iOS location APIs. Android has no such facility. So, option one is to use an app that will read the NMEA data over BT and use that to set the mock location on your Android device (as Rodrigo said). Option two is what I do in my app: connect to the GLO or other BT GPS from directly in the app. Then I parse the NMEA lines myself and use that within the app. The downside of this is that each app which uses location must implement this themselves.

It's working for me with this app:
https://play.google.com/store/apps/details?id=googoo.android.btgps
It uses mock GPS location to inject the GLO's position.

Related

Custom Location Services with external GPS connected to Raspberry Pi with android things

Hello I am wanting to connect an external GPS unit via I2C or serial to a raspberry pi 3 running android things to have this GPS unit provide location data.
So far using the Rasbarian OS I have a working python script with custom libraries. The script outputs raw NMEA data.
I am wondering how would I need to run this script to be able to have Android Location services use this data for location services? Would I need to create an app using the location services API? Or since this is a locally installed device would I need to write firmware or some kind? I am just wondering if someone could point me in the right direction of what kind of software I would need to write (an app or driver or firmware) in order to have this NMEA data accessible for location services.
Example of GPS driver connected via serial port you can find in Android Things user-space GPS driver and how to use it you can find in UART GPS sample for Android Things. Also take a look at Official Documentation and examples like this.

How to send fake Accelerometer values to an app on a real device?

For example, Location Spoofer gives out a fake location by using the Access Mock Location permission and I can make my device send out a signal that it's present in any place that I desire.
In the same way, can I fake the Accelerometer data to mock the various situations that a user can be in?
Thanks in advance.
You can use SensorSimulator to simulate acceleration in your android device or emulator (download link).
As i answered in this question: Simulate accelerometer values on a real device
You can send the values you want directly from your app, but i am not sure if you need to be root to do that.

Google maps Android API getting wifi location

So I am working on this app that will get the location of a wifi hotspot by just detecting it using the sensor wifi of the phone (The phone is not actually connecting to the hotspot wifi, it just detect).
I was doing some preliminary research before start developing the app, and it seems that the Google Geolocation API will do the work for me. However, it is not free (at least what I understood after reading through the API). I had checked other apps that detects wifi hotspot, and I am just wondering if those apps have their own database with all the wifi hotspot information (SSID, location coordinates, etc) so when the wifi sensor detects a wifi hotspot, it will lookup the database and get the information such as location.
Also, I was mentioned by a colleague that Google Maps also stores wifi info. Is is true? Cause I couldn't find any info about that.
Android has multiple LocationProviders, including:
LocationManager.GPS_PROVIDER : get position using GPS
LocationManager.NETWORK_PROVIDER : get position using Wifi, cell network, etc.
LocationManager.PASSIVE_PROVIDER: get position using data provided by already running providers. This allows several apps to share geolocation information)
You don't have to pay anything to use NETWORK_PROVIDER
Some providers might not be present on all devices, depending on phone model and android version.
Providers have different characteristics: NETWORK is fast but not always precise enough, GPS is precise but slow and battery intensive, etc. The best strategy is to request location from several providers, and cancel pending request as soon as you get a location that is good enough depending on your criteria (precision, response time, etc.)
I found this article by Reto Meier quite useful to wrap my head around geolocation on Android

Android Bluetooth Device Locator

How can I locate other BlueTooth devices that are using my app and show them on map, with range, exact location, like radar map.
The only way you could possibly do this is if your Bluetooth slave devices individually have the ability to track and report their location (e.g. GPS).
Otherwise it's not possible at all. The Bluetooth radio and antenna in your Android device will have no direction finding ability.
Possible design idea :
You want to implement this with the help of a webservice.
Make your app report its being used(may be you want to report at regular intervals and shutdown of app) along with location information (probably you want to use GPS, have a look at this : Obtaining User Location).
Make you radar app to read those information and prepare the map.
Cons :
Availability of GPS will affect your application
Accuracy is limited.

Location within a building using the wifi hotspot

I am trying to build an android application which changes the alert profile of the phone according to the location. I am using Google maps to get the location of the user. But this gives me the location only up to the granularity of a building.
For example, Google map might tell that I am in my office building, but not whether I am in a meeting room or the pantry. And I might want different profiles for the two places.
Assuming the building has a separate wireless router in each room, I plan to use the wifi hot spot to get the precise location.
Will this be possible? Is there a service/app already existing for this?
Any other ideas to achieve this are also welcome.
That's an active research topic that has no real solution yet. You might be able to get information about signal strength of close hotspots (don't know of there is an API in Android for that) or at least the BSSID of your current hotspot (there is an API for that AFAIK) and decide based on that where you are.
If there was a great solution to do that Google would have probably done that already (they have to a limited extend: http://googlemobile.blogspot.de/2011/11/go-indoors-with-google-maps-60-for.html)

Categories

Resources