阅读诺基亚论坛,除非您的MIDlet已签名,否则几乎不可能从诺基亚S40系列手机访问手机ID和相关信息,即使这只适用于S40 3rd Edition FP1及以上版本。
我使用Java ME
在诺基亚S40 Dev Platform 2手机上尝试了以下操作System.getProperty("com.nokia.mid.cellid");
但是返回的值为null。
是否有任何解决方法,可以通过其他方法读取单元ID,例如Modem AT(我想这只适用于连接到PC的手机),SIM Application Toolkit或其他?
答案 0 :(得分:2)
即使它是S40第3版FP1(或以上)并签名 - 它也必须由诺基亚签名! (真)。我不知道其他的解决方法,但我也尝试过JSR-179并且没有做到这一点。
答案 1 :(得分:0)
我正在使用SDK中的LocationProvider类。 这是我的功能:
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。