Доступ к данным свойств мобильного устройства - PullRequest
0 голосов
/ 13 ноября 2018

Есть ли способ доступа к свойствам мобильных устройств через C #. Цель состоит в том, чтобы отобразить серийный номер устройства и версию iOS для USB, подключенного как iPhone.

При использовании запроса WMI, как показано ниже, доступ предоставляется к базовой информации, доступной через диспетчер компьютеров, например DeviceID или PnpDeviceID. Однако я не смог найти свойство, которое дает серийный номер устройства и т. Д.

ManagementObjectSearcher(@"Select * From Win32_USBHub WHERE Description LIKE 'Apple Mobile Device%'")

или

ManagementObjectSearcher(@"Select * From Win32_PnPEntity")

или

ManagementObjectSearcher("@Select * From Win32_USBControllerDevice")

Меню свойств устройства, на которое я ссылаюсь, находится на рисунке ниже, к которому можно щелкнуть правой кнопкой мыши устройство и затем щелкнуть свойства.

enter image description here

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Поместив код ниже после 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();
0 голосов
/ 20 ноября 2018

Если вы хотите получить доступ к таким свойствам, как версия для iOS, вам лучше всего использовать imobiledevice-net .

Вы можете установить пакет imobiledevice-net NuGet и затем запуститькоманда, подобная этой:

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)
{
    iDeviceHandle deviceHandle;
    idevice.idevice_new(out deviceHandle, udid).ThrowOnError();

    LockdownClientHandle lockdownHandle;
    lockdown.lockdownd_client_new_with_handshake(deviceHandle, out lockdownHandle, "Quamotion").ThrowOnError();

    string deviceName;
    lockdown.lockdownd_get_device_name(lockdownHandle, out deviceName).ThrowOnError();

    deviceHandle.Dispose();
    lockdownHandle.Dispose();
}

Класс блокировки позволит вам получить доступ и к другим свойствам, таким как версия для iOS.

Это зависит от iTunes, хотя.

...