Чтение идентификатора ячейки из 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.