Wie erhalte ich eine Seriennummer für mobile Geräte mit Motorola (Symbol)?
-
14-10-2019 - |
Frage
Wie erhalte ich eine Seriennummer für mobile Geräte mit Motorola (Symbol)?
Ich programmiere den Motorola ES400, der mit "Symbol" -Bibliotheken geliefert wird.
Es scheint Möglichkeiten zu geben, die serielle Zahlen der verschiedenen Scanner zu erhalten, aber nicht das tatsächliche Gerät selbst!
Hat jemand irgendwelche Ideen?
Was ist der Unterschied zwischen "Seriennummer" (wie auf dem Gerät gezeigt) und "elektronische Seriennummer" von TerminalInfo zurückgegeben?
Lösung
Ich habe mich gerade auf dem MC9090 -Gerät umgegangen, das auch die Symbolbibliotheken verwendet (nicht sicher, ob sie gleich sind, aber dies ist eine Aufnahme wert). Ich habe Reflexion verwendet, weil ich Geräte von verschiedenen Herstellern habe und den gleichen Code ausführen möchte. Sie können auf dieses Feld direkt aus der Eigenschaft zugreifen oder Reflexion verwenden:
Hier ist die Eigenschaft:
Symbol.ResourceCoordination.Terminalinfo.ESN
Hier ist meine Methode mit Reflexion:
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);
}
Hoffe das hilft!
Andere Tipps
Das ist fantastisch, danke. Die Symbol -SDK -Hilfe fand dies bei der Suche nicht!
Nur verwendet:
Symbol.ResourceCoordination.TerminalInfo Version = new Symbol.ResourceCoordination.TerminalInfo();
return Version.ESN;
Fand auch das:
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();
Hier ist die schnelle und einfache VB.NET -Lösung:
Fügen Sie einen Verweis auf Symbol hinzu.
Verwenden Sie dann den folgenden Code, um auf den ESN -Wert (elektronische Seriennummer) zuzugreifen.
Dim Version As New Symbol.ResourceCoordination.TerminalInfo
MsgBox(Version.ESN)
Arbeitete großartig an unseren MC3190S -Scannern! :)