blog-details

Hướng dẫn lập trình đọc thông tin Iphone
 

 

Thư viện cần thiết

Imobiledevice-net là một thư viện cho phép bạn tương tác với các thiết bị iOS trên Windows, macOS và Linux bằng các ngôn ngữ .NET (chẳng hạn như C # hoặc Visual Basic). Nó dựa trên thư viện libimobiledevice.

imobiledevice-net tương thích với các phiên bản .NET Framework và .NET Core gần đây.

using iMobileDevice;
using iMobileDevice.iDevice;
using iMobileDevice.Lockdown;
using LibUsbDotNet.DeviceNotify;

You can install imobiledevice-net as a NuGet package

PM> Install-Package imobiledevice-net

Ưu điểm of imobiledevice-net

Chúng tôi đã thực hiện một số công việc để đảm bảo imobiledevice-net "chỉ hoạt động":

  • Better string handling: Strings are marshalled (copied from .NET code to unmanaged code and vice versa) as UTF-8 strings. This is what libimobiledevice uses natively.
  • Better array handling: In most cases, we'll return a ReadOnlyCollection<string> object instead of IntPtr objects when the native API returns an array of strings.
  • Less memory leaks: We give you safe handles instead of IntPtr objects. When you dispose of the safe handle (or you forget, and the framework does it for you), the safe memory is freed, too.
  • Unit testing support: You interact with libimobiledevice through classes such as iDevice or Lockdown. For each of these classes, we also expose an interface, allowing you to unit test your code.
  • XML Documentation: Where possible, we've copied over the documentation of libimobiledevice to imobiledevice-net, giving you IntelliSense support.

 

Bắt đầu
Sử dụng thư viện

Trước khi sử dụng thư viện, bạn phải gọi NativeLibraries.Load () để libimobiledevice được tải chính xác:

NativeLibraries.Load();

Liệt kê tất cả các thiết bị iOS

Đoạn trích sau liệt kê tất cả các thiết bị hiện được kết nối với PC của bạn:

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();
}

. Chúng ta có thể đọc được nhiều thông tin khác nữa

Vd. Serial Number


                string sn;
                iMobileDevice.Plist.PlistHandle tested1;
                lockdown.lockdownd_get_value(lockdownHandle, null, "SerialNumber", out tested1).ThrowOnError();
      

 

Bản phân phối nhị phân của libimobiledevice dành cho Windows, macOS và Ubuntu Linux

Chúng tôi cũng cung cấp các bản phân phối nhị phân của libimobiledevice cho Windows, macOS và Ubuntu Linux.

Đối với Windows và macOS, bạn có thể tải xuống tệp zip có thư viện và công cụ libimobiledevice bằng cách sử dụng trang bản phát hành GitHub.

Đối với Ubuntu Linux, bạn có thể sử dụng PPA (kho lưu trữ gói) của chúng tôi để cài đặt các thư viện và công cụ libimobiledevice mới nhất bằng cách sử dụng apt-get. Xem PPA Quamotion để biết thêm thông tin.

Tất cả các mã nhị phân gốc đều được xây dựng từ các kho lưu trữ khác nhau (libplist, libusbmuxd, libimobiledevice, đến một vài cái tên) trong tổ chức libimobiledevice-win32.

Đối với macOS và Linux, bạn có thể sử dụng công cụ tự động để biên dịch và cài đặt các tệp nhị phân gốc từ nguồn. Đối với Windows, bạn có thể sử dụng giải pháp Visual Studio và các dự án được lưu trữ trong kho lưu trữ libimobiledevice-vs.

Free – Tải về

Đánh giá bài viết