モトローラ(シンボル)モバイルデバイスのシリアル番号を取得する方法は?
-
14-10-2019 - |
質問
モトローラ(シンボル)モバイルデバイスのシリアル番号を取得する方法は?
「シンボル」ライブラリが付属しているMotorola ES400をプログラミングしています。
さまざまなスキャナーのシリアル番号を取得する方法はあるようですが、実際のデバイス自体ではありません!
誰かがアイデアを持っていますか?
「シリアル番号」(デバイスに示されているように)とTerminalInfoによって返される「電子シリアル番号」の違いは何ですか?
解決
私はこれをMC9090デバイスで扱いました。これはシンボルライブラリも使用します(それらが同じかどうかはわかりませんが、これはショットの価値があります)。さまざまなメーカーのデバイスがあり、同じコードを実行したいので、リフレクションを使用しました。プロパティから直接このフィールドにアクセスするか、リフレクションを使用できます。
ここにプロパティがあります:
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);
}
お役に立てれば!
他のヒント
それは幻想的です、ありがとう。シンボル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();
これが迅速で簡単なVB.NETソリューションです:
symbol.resourcoordination.dllへの参照を追加します(ここで見つけました:C:プログラムファイル Motorola emdk for .net v2.8 sdk smart devices symbol.resourcecoordination.dll)。
次に、次のコードを使用して、ESN(電子シリアル番号)値にアクセスします。
Dim Version As New Symbol.ResourceCoordination.TerminalInfo
MsgBox(Version.ESN)
MC3190Sスキャナーでうまく機能しました! :)
所属していません StackOverflow