Считывание идентификатора ячейки с Nokia S40 с помощью J2ME
Вопрос
Читая форумы Nokia, кажется, что доступ к идентификатору ячейки и связанной с ним информации с телефонов Nokia серии S40 практически невозможен, если только ваш МИДлет подписан, и даже это будет работать только для S40 3rd Edition FP1 и выше.
Я попробовал следующее на телефоне Nokia S40 Dev Platform 2, используя Java Я:
System.getProperty("com.nokia.mid.cellid");
Однако возвращенное значение было нулевым.
Есть ли какой-либо обходной путь для этого, может ли идентификатор ячейки считываться другими методами, такими как Modem AT (я думаю, это будет работать только с телефоном, подключенным к ПК), Набор инструментов для SIM-приложений или другое?
Решение
И даже если это 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.