使用J2ME从Nokia S40读取单元ID

时间:2009-08-20 13:34:52

标签: java java-me nokia cellid series-40

阅读诺基亚论坛,除非您的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或其他?

2 个答案:

答案 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。