4

我正在尝试使用 J2ME 开发一个移动应用程序来检测室内设备。由于 GPS 无法检测到室内的移动设备。所以我正在研究使用带有小区 ID 的位置库。谁能给我一些关于这种方法的指导?

opencellid.org 提供了一个免费资源,用于使用小区 ID 检测移动设备。基于他们的API,它需要输入IMSI。但我无法检索 IMSI,因为它需要制造商/运营商域权限才能这样做。

顺便说一句,我来自新加坡,使用 Starhub 作为服务提供商并在 N97 mini 上测试我的程序。不使用它,任何这些信息都有帮助。

除了使用单元格 ID 的想法之外,还有什么其他方法吗?任何帮助将不胜感激...

4

2 回答 2

2

没有简单的方法可以检测某人是否“在室内”。

您可以使用 gps 通过信号丢失来检测某人何时在室内,但您仍然无法判断他们是否只是没有信号,或者他们是否真的在门内。

手机三角测量在这种情况下几乎没有用,因为它不够准确。看着我手机的谷歌地图,它甚至不能告诉我在哪条街上,只是粗略地知道我在 500 米内的位置。

如果大楼各处都有 Wifi 接入点,那么这些可能是检测某人何时在室内的最佳方式。如果符合给定建筑物中每个无线接入点的数据库,则 Wifi 接入点将工作......

看看http://www.skyhookwireless.com/了解更多信息!

于 2010-01-16T13:34:46.573 回答
0

代码取自 developer.nokia.com

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;
}

但这需要津贴,因此您必须使用诺基亚证书 afaik 签名。并将 MiDLET-Permission 设置为 com.nokia.mid.mobinfo.IMSI

你可能想试试

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

相反,iirc那些更容易阅读

于 2013-02-05T11:36:14.320 回答