Чтение идентификатора ячейки из Nokia S40 с использованием J2ME

Читая форумы Nokia, кажется, что получить доступ к Cell ID и соответствующей информации с телефонов серии Nokia S40 практически невозможно, если ваш мидлет не подписан, и даже это будет работать только для S40 3rd Edition FP1 и выше.

Я попробовал следующее на телефоне Nokia S40 Dev Platform 2, используя Java ME:

System.getProperty("com.nokia.mid.cellid");

Однако возвращаемое значение было нулевым.

Есть ли обходной путь к этому, можно ли прочитать идентификатор ячейки другими методами, такими как Modem AT (я думаю, это будет работать только с телефоном, подключенным к ПК), SIM Application Toolkit или другим?

2 ответа

Решение

И даже если это S40 3rd Edition FP1 (или выше) и подписанный - он должен быть подписан Nokia! (действительно). Я не знаю о других обходных путях, но я также попробовал JSR-179 и не смог этого сделать.

Я использую класс LocationProvider из SDK. Вот моя функция:

public LocationProvider getCellIdLocationProvider() {
    try {
        int[] methods = {Location.MTA_ASSISTED | Location.MTE_CELLID
            | Location.MTE_SHORTRANGE | Location.MTY_NETWORKBASED};
        return LocationUtil.getLocationProvider(methods, null);
    } catch (LocationException e) {
        System.err.println("Failed to get cell id location provider.");
        return null;
    }
}

возможно, что вы также используете GPS (если он есть на устройстве), изменив методы с помощью других параметров. Просто убедитесь, что в спецификации устройства есть JSR 179.

Другие вопросы по тегам