Example #1
0
        private bool ConnectToPhone()
        {
            if (MobileDevice.AMDeviceConnect(ref iPhoneHandle) == 1)
            {
                //int connid;

                throw new Exception("Phone in recovery mode, support not yet implemented");
                //connid = MobileDevice.AMDeviceGetConnectionID(ref iPhoneHandle);
                //MobileDevice.AMRestoreModeDeviceCreate(0, connid, 0);
                //return false;
            }
            if (MobileDevice.AMDeviceIsPaired(ref iPhoneHandle) == 0)
            {
                return(false);
            }

            if (MobileDevice.AMDeviceValidatePairing(ref iPhoneHandle) != 0)
            {
                return(false);
            }

            if (MobileDevice.AMDeviceStartSession(ref iPhoneHandle) == 1)
            {
                return(false);
            }

            if (MobileDevice.AMDeviceStartService(ref iPhoneHandle, MobileDevice.StringToCFString("com.apple.afc2"), ref hAFC, IntPtr.Zero) != 0)
            {
                if (MobileDevice.AMDeviceStartService(ref iPhoneHandle, MobileDevice.StringToCFString("com.apple.afc"), ref hAFC, IntPtr.Zero) != 0)
                {
                    return(false);
                }
            }

            if (MobileDevice.AFCConnectionOpen(hAFC, 0, ref hAFC) != 0)
            {
                return(false);
            }

            connected = true;
            return(true);
        }