【问题标题】:Detect mobile device indoor (J2ME)检测室内移动设备 (J2ME)
【发布时间】:2010-01-16 12:41:19
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我没有看到 OpenCellId API 中记录了 IMSI 要求的位置。除了 HLR 和 SIM 卡,其他人都不知道 IMSI,那么它有什么用处?
  • 您好,感谢您的回复。这是因为我从easywms.com/easywms/?q=en/node/3589 中找到了一个示例。从示例中,它基本上是从 IMSI 代码中提取 MCC 和 MNC。所以我想我需要IMSI。有没有其他方法可以获取 MCC 和 MNC 信息??

标签: java java-me mobile gps nokia


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

    代码取自 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那些更容易阅读

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 2010-11-20
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多