Обнаружить мобильное устройство в помещении (J2ME) - PullRequest
4 голосов
/ 16 января 2010

Я пытаюсь разработать мобильное приложение, использующее J2ME для обнаружения устройства в помещении. По GPS невозможно обнаружить мобильное устройство в помещении. Поэтому я изучаю использование базы местоположения с идентификатором ячейки. Может кто-нибудь дать мне руководство по этому вопросу?

opencellid.org предоставляет бесплатный источник для обнаружения мобильного телефона с помощью идентификатора ячейки. Основываясь на их API, он требует ввода IMSI. Но я не могу получить IMSI, так как для этого требуются разрешения домена производителя / оператора.

Кстати, я из Сингапура, использую Starhub в качестве поставщика услуг и тестирую свою программу на N97 mini. Не используйте это любая информация помогает.

Как-нибудь иначе, кроме идеи использования идентификатора ячейки ?? Любая помощь будет принята с благодарностью ...

Ответы [ 2 ]

2 голосов
/ 16 января 2010

Нет простого способа определить, находится ли кто-то в помещении.

Вы можете использовать gps, чтобы обнаружить, когда кто-то находится в помещении из-за потери сигнала, но у вас все равно не будет возможности определить, нет ли у него сигнала или он действительно в двери.

Триангуляция сотового телефона в этой ситуации в значительной степени бесполезна, поскольку она просто недостаточно точна. Глядя на карты Google моего телефона, он не может даже определить улицу, на которой я нахожусь, только приблизительное представление о том, где я нахожусь в пределах 500 метров.

Если в здании есть точки доступа Wi-Fi, это, вероятно, будет лучшим способом обнаружения, когда кто-то находится в помещении. Точки доступа Wi-Fi будут работать, если будет собрана база данных каждой точки беспроводного доступа в данном здании .....

Для получения дополнительной информации посмотрите http://www.skyhookwireless.com/

0 голосов
/ 05 февраля 2013

код взят с 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;
}

но для этого требуется допуск, поэтому вам придется подписаться с сертификатом nokia afaik. и установите MiDLET-разрешение для com.nokia.mid.mobinfo.IMSI

вы можете попробовать

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

вместо те, которые легче читать

...