Java 使用J2ME从诺基亚S40读取手机识别码

Java 使用J2ME从诺基亚S40读取手机识别码,java,java-me,nokia,cellid,series-40,Java,Java Me,Nokia,Cellid,Series 40,阅读诺基亚论坛,您似乎无法从诺基亚S40系列手机中访问手机ID和相关信息,除非您的手机已签名,即使这样,也只适用于S40第三版FP1及以上版本 我在诺基亚S40开发平台2手机上尝试了以下操作: 但是,返回的值为null 是否有解决方法,可以通过其他方法读取手机ID,如调制解调器AT(我想这只适用于连接到PC的手机)或其他方法?即使是S40第三版FP1(或更高版本)并签名,也必须由诺基亚签名!(真的)。我不知道其他解决方法,但我也尝试过JSR-179,但失败了。我正在使用SDK中的Location

阅读诺基亚论坛,您似乎无法从诺基亚S40系列手机中访问手机ID和相关信息,除非您的手机已签名,即使这样,也只适用于S40第三版FP1及以上版本

我在诺基亚S40开发平台2手机上尝试了以下操作:

但是,返回的值为null


是否有解决方法,可以通过其他方法读取手机ID,如调制解调器AT(我想这只适用于连接到PC的手机)或其他方法?

即使是S40第三版FP1(或更高版本)并签名,也必须由诺基亚签名!(真的)。我不知道其他解决方法,但我也尝试过JSR-179,但失败了。

我正在使用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。

在他们提到的论坛中,通过WMA api,您可以使用CBS获取包含Cell-ID信息的字符串。有什么想法吗?在某些网络上,您可以通过某些CBS端口收听以获取Cell-ID信息。例如,沃达丰英国大约每分钟在端口50上传输当前手机的STD代码。然而,这只在2G上完成,而不是3G上。而其他网络则不这样做。换句话说,不可依赖!我也有同样的问题,如果你已经找到了解决方案,你能不能提供一个提示,我们如何才能做到这一点?
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;
    }
}