3

Motorola (Symbol) モバイル デバイスのシリアル番号を取得するにはどうすればよいですか?

「Symbol」ライブラリが付属する Motorola ES400 をプログラミングしています。

さまざまなスキャナーのシリアル番号を取得する方法はあるようですが、実際のデバイス自体のシリアル番号は取得できません!

誰でもアイデアはありますか?


"シリアル番号" (デバイスに表示される) と TerminalInfo によって返される "電子シリアル番号" の違いは何ですか?

4

4 に答える 4

4

MC9090 デバイスでこれを処理しましたが、これは Symbol ライブラリも使用しています (同じかどうかはわかりませんが、試してみる価値はあります)。さまざまなメーカーのデバイスがあり、同じコードを実行したいので、リフレクションを使用しました。プロパティから直接このフィールドにアクセスするか、リフレクションを使用できます。

プロパティの場所は次のとおりです。

Symbol.ResourceCoordination.Terminalinfo.ESN

リフレクションを使用した私の方法は次のとおりです。

try
        {                   
                Assembly symbolApi = Assembly.LoadFrom("Symbol.ResourceCoordination.dll");      

                Type terminalInfo = null;

                foreach (Type t in symbolApi.GetTypes())
                {
                    if (t.Name == "TerminalInfo")
                    {
                        terminalInfo = t;                       
                        break;
                    }
                }

                LogService.log(terminalInfo.Name);

                if (terminalInfo != null)
                {
                    object objTerminalInfo = Activator.CreateInstance(terminalInfo);

                    PropertyInfo esn = null;
                    foreach (PropertyInfo info in terminalInfo.GetProperties())
                    {                           
                        if (info.Name == "ESN")
                        {
                            esn = info;
                            break;
                        }
                    }

                    if (esn != null)
                    {
                        object objSn = esn.GetValue(objTerminalInfo, null);
                        sn = objSn.ToString();
                    }
                }
                else
                    LogService.log("TerminalInfo type not found in " + symbolApi.FullName);

        }
        catch (MissingFieldException e)
        {               
            LogService.log("MissingFieldException, not Symbol Unit: " + e.Message);
        }
        catch (Exception e)
        {
            LogService.log("Error in SymbolAPI: " + e.Message);
        }

お役に立てれば!

于 2010-12-31T13:49:41.053 に答える
0

それは幻想的です、ありがとう。Symbol SDKヘルプは、検索時にこれを見つけられませんでした。

使用したばかり:

Symbol.ResourceCoordination.TerminalInfo  Version = new Symbol.ResourceCoordination.TerminalInfo();

        return Version.ESN;
于 2010-12-31T14:05:22.400 に答える
0

これも見つけました:

            Symbol.ResourceCoordination.TerminalInfo  Version = new Symbol.ResourceCoordination.TerminalInfo();

        System.Text.StringBuilder MyUUID = new StringBuilder("0x") ;

        if (Version.UniqueUnitID != null)
        {
            //this code is actually from the Motorola SDK guid 
            foreach (byte b in Version.UniqueUnitID)

                MyUUID.Append(b.ToString("X2"));

        }

        return MyUUID.ToString();
于 2010-12-31T15:29:18.677 に答える