我还对其他允许设置模拟器 IMEI 的 Symbian SDK 感兴趣。

有帮助吗?

解决方案

仿真器硬编码IMEI为“000000000000000”。用您想要使用的任何内容替换它,并继续运行您的代码。

Symbian C ++:

    TPlpVariantMachineId imei;
    PlpVariant::GetMachineIdL(imei); 
    imei.Copy(_L("123456789012345"));

Python for S60(PyS60):

    import sysinfo
    my_imei = sysinfo.imei()
    my_imei = u"123456789012345"

其他提示

我对这些事情的一般方法是在软件中执行

  1. 将IMEI提取代码放入一个全局可访问的函数中,并仅将此函数用于IMEI提取。
  2. #ifdef __WINS __ 可以在C ++代码中用于有选择地编译要在模拟器中返回的硬编码IMEI。在Java中,您可以通过其他方式告诉您在模拟器中(例如,如果IMEI返回的是模拟器中固定的奇怪值),并采取相应的行动。
  3. 您可以更进一步,拥有动态IMEI。一旦你这样做,你会发现用不同的IMEI测试你的代码会变得容易得多。

我从未真正尝试过,但这是我最好的猜测:

模拟器没有正确的电话实现,除非:

  • 您可以通过红外线/USB/串口将其连接到实际的手机。在这种情况下,模拟器电话组件将需要配置为使用 AT 命令来操控手机(即使手机不是 Symbian 手机)。这允许您拨打电话、发送和接收短信/彩信,但肯定不会更改 IMEI。

  • 您使用 SIMTSY 模块。这是一个使用配置文件来模拟电话事件的组件。它可以假装发送短信/彩信,假装您正在接听电话……您知道,这些实际上都不会产生任何类型的网络流量。我假设 IMEI 位于配置文件中,但我不希望您可以在不重新启动模拟器的情况下正确更改它。我从未见过 SIMTSY 在 Symbian 本身之外使用,所以我不知道它是否可供第三方开发人员使用。不过,它应该会在未来两年内与操作系统的其余部分一起开源。

还有一种可能性是,SDK 本身的构建方式使用构建时宏禁用了模拟器的大部分电话框架。你应该检查一下 http://forum.nokia.com

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top