Motorola (Symbol) モバイル デバイスのシリアル番号を取得するにはどうすればよいですか?
「Symbol」ライブラリが付属する Motorola ES400 をプログラミングしています。
さまざまなスキャナーのシリアル番号を取得する方法はあるようですが、実際のデバイス自体のシリアル番号は取得できません!
誰でもアイデアはありますか?
"シリアル番号" (デバイスに表示される) と TerminalInfo によって返される "電子シリアル番号" の違いは何ですか?
Motorola (Symbol) モバイル デバイスのシリアル番号を取得するにはどうすればよいですか?
「Symbol」ライブラリが付属する Motorola ES400 をプログラミングしています。
さまざまなスキャナーのシリアル番号を取得する方法はあるようですが、実際のデバイス自体のシリアル番号は取得できません!
誰でもアイデアはありますか?
"シリアル番号" (デバイスに表示される) と TerminalInfo によって返される "電子シリアル番号" の違いは何ですか?
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);
}
お役に立てれば!
それは幻想的です、ありがとう。Symbol SDKヘルプは、検索時にこれを見つけられませんでした。
使用したばかり:
Symbol.ResourceCoordination.TerminalInfo Version = new Symbol.ResourceCoordination.TerminalInfo();
return Version.ESN;
これも見つけました:
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();