エミュレーターの IMEI を設定できる他の Symbian SDK にも興味があります。
3 に答える
この種のことに対する私の一般的なアプローチは、ソフトウェアで行うことです。
- IMEI 取得コードを 1 つのグローバルにアクセス可能な関数に入れ、この関数を IMEI 取得にのみ使用します。
#ifdef __WINS__
C++ コードで使用して、エミュレーターで返すハードコードされた IMEI を選択的にコンパイルできます。Java では、別の方法でエミュレーターにいることがわかり (たとえば、返された IMEI がエミュレーターで固定の変な値である場合)、それに応じて行動することができます。- さらに一歩進んで、動的 IMEI を持つことができます。これを行うと、さまざまな IMEI を使用したコードのテストがはるかに簡単になることがわかります。
エミュレーターには、「000000000000000」の IMEI がハードコーディングされています。何を使用したいものに置き換えて、コードの実行を続けます。
シンビアン C++:
TPlpVariantMachineId imei;
PlpVariant::GetMachineIdL(imei);
imei.Copy(_L("123456789012345"));
S60 用の Python (PyS60):
import sysinfo
my_imei = sysinfo.imei()
my_imei = u"123456789012345"
私は実際にそれを試したことはありませんが、これが私の最善の推測です:
次の場合を除き、エミュレータには適切なテレフォニー実装がありません。
赤外線/USB/シリアル経由で実際の電話にリンクします。その場合、AT コマンドを使用して電話機を操縦するようにエミュレータのテレフォニー コンポーネントを構成する必要があります (電話機が Symbian 電話機でなくても)。これにより、電話をかけたり、SMS/MMS を送受信したりできますが、IMEI を変更することはできません。
SIMTSY モジュールを使用します。これは、構成ファイルを使用してテレフォニー イベントをシミュレートするコンポーネントです。SMS/MMS を送信するふりをしたり、電話を受信しているふりをしたりできますが、実際にはネットワーク トラフィックを作成するものではありません。IMEI は構成ファイルにあると思いますが、エミュレーターを再起動しないと正しく変更できないと思います。SIMTSY が Symbian 以外で使用されているのを見たことがないので、サードパーティの開発者が利用できるかどうかはわかりません。ただし、今後 2 年以内に残りのオペレーティング システムと共にオープンソース化される予定です。
また、ビルド時のマクロを使用して、SDK 自体がビルドされた方法により、エミュレーターのテレフォニー フレームワークのほとんどが無効になっている可能性もあります。http://forum.nokia.comを確認してください。