在C#中获取附加的设备序列号

时间:2017-09-05 20:58:06

标签: c# ios iphone windows

我正在尝试通过C#从连接的设备获取数据。具体来说,我需要从iOS设备获取序列号。

我看到附件中的数据可供我使用,但我正在寻找一种在C#中获取此信息的方法。

有谁知道如何在C#中访问此信息?

Properties from attached iOS device

2 个答案:

答案 0 :(得分:1)

imobiledevice-net提供了一个C#API,可用于与连接到Windows,Linux或macOS计算机的iOS设备进行交互。

README中有示例代码,可帮助您列出连接到PC的所有设备的UDID:

ReadOnlyCollection<string> udids;
int count = 0;

var idevice = LibiMobileDevice.Instance.iDevice;
var lockdown = LibiMobileDevice.Instance.Lockdown;

var ret = idevice.idevice_get_device_list(out udids, ref count);

if (ret == iDeviceError.NoDevice)
{
    // Not actually an error in our case
    return;
}

ret.ThrowOnError();

// Get the device name
foreach (var udid in udids)
{
    Console.WriteLine(udid);
}

请告诉我这是否有帮助!

答案 1 :(得分:1)

lockdown.lockdownd_client_new_with_handshake(deviceHandle, out lockdownHandle, "Quamotion").ThrowOnError();之后放置以下代码,您将可以访问序列号或iOS版本之类的值。这只是一个粗略的例子:

    string t1;
    string t2;

    PlistHandle tested1;
    PlistHandle tested2;

    //Find serial number in plist
    lockdown.lockdownd_get_value(lockdownHandle, null, "SerialNumber", out 
    tested1);

    //Find IOS version in plist
    lockdown.lockdownd_get_value(lockdownHandle, null, "ProductVersion", out 
     tested2);

    //Get string values from plist
    tested1.Api.Plist.plist_get_string_val(tested1, out t1);
    tested2.Api.Plist.plist_get_string_val(tested2, out t2);

    //Place data in textboxes
    serialTXT.Text = t1.Trim();
    verTXT.Text = t2.Trim();

您首先需要在代码中加入NativeLibraries.Load();,然后使用引用插入所有必要的iMobileDevice。