How to use GPS indoors on a mobile device?

I am new to mobile apps. Basically I want to get the GPS coordinates of the user in the room. I have no problem finding a mobile device outdoors, only when indoors it creates problems. I tried to establish the accuracy, but it did not help.

Does he have a solution?

Here is my code:

new Thread() { public void run() { try { Criteria cr= new Criteria(); cr.setHorizontalAccuracy(1000); LocationProvider lp= LocationProvider.getInstance(cr); Location l = lp.getLocation(60); Coordinates c = l.getQualifiedCoordinates(); if(c != null ) { lat = c.getLatitude(); lon = c.getLongitude(); } } catch(Exception e) { System.out.println("Error"); } } }.start(); 
+4
source share
4 answers

GPS is based on estimates of the distance from the emission of satellites to your receiver. Your GPS receiver needs (in general) a signal from at least 4 satellites in order to be able to calculate its location. Signal levels for the L1 band under open sky conditions approach -130 dBm. Commercial receivers, such as those integrated into mobile phones, are capable of tracking satellites up to -160 dBm. Under this threshold, the receiver cannot use the signal. This edge of 30 dB allows some attenuation from obstacles such as foliage, glass windows, even light walls, but several floors of the building completely mask signals from almost all sides, which makes GPS completely inaccessible. And even if the attenuation allows the receiver to use the signals to calculate its positions, the accuracy achieved is likely to be insufficient for your target application (the accuracy is degraded by attenuation of the signal).

Wi-Fi location systems, such as Skyhook (implemented on many mobile platforms), on the other hand, can often calculate location inside buildings, but this method has two main drawbacks:

  • Database coverage does not include internal sites (AFAIK), so the returned location is very approximate and does not apply to any application.
  • Wi-Fi location algorithms based on range estimation to hot spots using signal levels are heavily affected by internal obstacles (people, furniture, etc.). This reduces positioning accuracy.

There is a third option: integrate acceleration with chpsset MEMS in your mobile phone, starting from the last known GPS position. This may work under certain conditions ...

In conclusion, there is no ready-made solution for internal placement on mobile phones, but some of them are working on this issue (for example, http://www.polestar.eu/en/node/111/y )

Edit: I forgot to mention cell-based positioning, which is available if the phone has active data correction on the cellular network. This method is accurate enough to give the city where the mobile phone is located.

+21
source

Unfortunately, GPS was never intended for indoor use. In fact, most consumer GPS sensors are not able to get a valid GPS solution unless they have a clear view of the sky. Even tall buildings and dense trees can cause significant problems.

+7
source

There are databases of WiFi access points, so you can get a pretty good idea of ​​which access points are in range: http://gadgets.boingboing.net/2008/10/22/google-gears-adds-wi.html http://www.skyhookwireless.com/

+2
source

I thought JSR 179 supports network-based positioning out of the box, since Google Maps is a Java application that has this functionality. But according to the Sony Ericsson developer forum and some posts on the Nokia developer forums, it seems your best bet is to find the cell ID yourself through the system properties and use a search service like opencellid.org .

In Nokias, it seems likely that network positioning works directly through JSR 179, although it is related to changing phone settings.

Set

Menu β†’ Settings-> Phone settings. β†’ General-> Positioning-> Positioning Server

to supl.nokia.com (inserted from nokia dev forums ). This will allow the use of network positioning. For available placement methods, see Placement Methods in S60 .

+2
source

All Articles