Indoor Mobile Device Detection (J2ME)

I am trying to develop a mobile application using J2ME to detect a device indoors. Since GPS cannot be detected by a mobile device indoors. Therefore, I am exploring the use of a location database with a cell id. Can someone give me some guidance on the approach of this?

opencellid.org provides a free source for cell phone detection using cell ID. Based on their API, it requires IMSI input. But I can not get IMSI, because this requires manufacturer / operator permissions.

By the way, I'm from Singapore, using Starhub as a service provider and testing my program on the N97 mini. Do not use it, any of this information helps.

Any other way around it, like the idea of ​​using a cell id? Any help would be greatly appreciated ...

+4
source share
2 answers

There is no easy way to determine if someone is "closed".

You can use gps to detect when someone is indoors, losing a signal, but you still can’t tell if they just have a signal or if they really are in the doorway.

Triangulating a cell phone is practically useless in this situation, since it is not accurate enough. Looking at my Google phone cards, he cannot even tell, on the street where I am, only an approximate idea of ​​where I am located at a distance of up to 500 meters.

If the building has Wifi access points, then they would probably be the best way to detect when someone is in the room. Wifi access points will work if the database of each wireless access point in this building was executed .....

Check out http://www.skyhookwireless.com/ for more information!

+2
source

developer.nokia.com code

public String getIMSI() { String out = ""; try { out = System.getProperty("IMSI"); if (out == null || out.equals("null") || out.equals("")) { out = System.getProperty("phone.imsi"); } if (out == null || out.equals("null") || out.equals("")) { out = System.getProperty("com.nokia.mid.mobinfo.IMSI"); } if (out == null || out.equals("null") || out.equals("")) { out = System.getProperty("com.nokia.mid.imsi"); } if (out == null || out.equals("null") || out.equals("")) { out = System.getProperty("IMSI"); } if (out == null || out.equals("null") || out.equals("")) { out = System.getProperty("imsi"); } } catch (Exception e) { return out == null ? "" : out; } return out == null ? "" : out; } 

but this requires a premium, so you have to sign up with a nokia afaik certificate. and install MiDLET-Permission on com.nokia.mid.mobinfo.IMSI

you can try

 String mcc = System.getProperty("com.nokia.mid.countrycode"); String mns = System.getProperty("com.nokia.mid.networkid"); 

iirc is easier to read

0
source

All Articles