如何使用.net实现iPhone和电脑之间的文件传输

如何使用.net实现iPhone和电脑之间的文件传输

最近太忙,工作医院两头跑,整个人有点分身乏术了。 所以老巢——这里也很少更新了。
言归正传, 现在iPhone越来越火了, 各种iPhone周边的应用需求也就越来越大。 AppStore更不必说,那是相当的火, 另外就是对iPhone进行管理的相关桌软件,像国内的91手机助手, QQ手机助手等都可以对iPhone的文件进行管理,国外的软件就更多的不计其数了。

其实, 这类软件的实现也不是非常难, 大多数都是通过调用Apple的动态库函数来实现iPhone和电脑的通信。常用的动态库包括MobileDevice.dll、CoreFoundary.dll等几个。 虽然都是apple自己提供的,但iTunes中并没有开放更多多的功能,比如直接往iPhone、iPad上拷贝文件,从iPad或者iPhone上直接拷贝文件到windows等。所以,我们可以通过apple提供的库函数来实现这样的需求。

常用的函数列表可以google搜索到,比如以下这些

static int AMDeviceNotificationSubscribe
static int AMDeviceConnect(void* device);

static int AMDeviceDisconnect(void* device);

static int AMDeviceIsPaired(void* device);

static int AMDeviceValidatePairing(void* device);

static int AMDeviceStartSession(void* device);

static int AMDeviceStopSession(void* device);

static int AMDeviceGetConnectionID(void* device);

static int AMRestoreModeDeviceCreate

如果你熟悉.NET,可以看看开源代码Manzana。 manzana是iPhone交互通信的.net开发包,该开源项目可以在google code上找到http://code.google.com/p/manzana/
其中, MobileDevice.cs是对CoreFoundary.dll和MobileDevice.dll的封装, iPhone.cs则是对iPhone处理事件的进一步封装。 首先要注册一个设备连接和断线的事件接收者,当iPhone或者iPad连接上电脑后会收到DeviceNotificationEvent,根据事件类型进行处理。 在项目下载页面中可以找到简单的UI界面实现了基本功能,也可以很好的理解其工作原理。 如果你也想开发一款类似的软件那么研究一下mazana将很有帮助。

使用manzana不但可以实现简单的iPhone和电脑之间的文件传输,还可以实现更复杂的功能,不过这些需要对manzana进行修改和改进才行。

原创文章如转载,请注明 
转载自: FLYBLOG [ http://www.flyblog.info

本文链接地址:http://www.flyblog.info/catprogramming/486.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
开头说明:此源码并未开发完成,只是个demo。而且写法很随意(我也想搞懂iTunesMobileDevice.dll的调用流程,奈何太繁琐),不喜勿喷! 1 .好像iTunesMobileDevice.dll对 太新太旧的设备读取某些功能存在着有误的问题(Iphone11系列读取颜色会返回空值0/1 ,Iphone5s的CPU架构号也会返回错误),其他没测可自行尝试 2 .整体流程是:1.调用 AMDeviceNotificationSubscribe ,函数用来及时反馈插拔设备消息                     2.调用 AMDeviceConnect ,函数用来连接设备( 到此步即可直接去获取一些基础设备信息,上图就是 )                     3.调用 AMDeviceIsPaired ,函数用来判断配对                     4.调用 AMDeviceValidatePairing ,函数用来验证配对,此函数也可做为(锁屏/信任)等判断依据                     5.调用 AMDeviceStartSession ,函数来创建会话通道,完成此步可做一些文件/高级信息(序列号/硬盘/内存/电池等) 系列操作                     注:整体流程的 成功 返回值均在源码中备注, 错误 的返回值过多没做整理,可以到CSDN( 连接在下方 )自行查询错误原因! 3 .源代码共调用了两个模块 精E模块(请自行替换),Ecallback(已开源,一搜就有源码,作者: 星锋工作室-东灿 ) 4 . 源代码或多或少都加了一些注释,功能不多虽然不多, 源代码依赖Itunes( iTunesMobileDevice.dll和CoreFoundation.dll )请自备! 5 .文献: 部分功能调用方法及声明(英文):https://bitbucket.org/tristero/mobiledeviceaccess/src/4bf38336bd6d7f5ffb23c8f331aed9eff5c720c0/MobileDevice.h?at=default#MobileDevice.h-115 部分服务/功能名查询:https://bitbucket.org/tristero/mobiledeviceaccess/src/4e3e281de0c38b7f9f053927d45a756b28134bd3/deviceValueForDomain.md?at=defaultfileviewer=file-view-default  错误返回值含义查询 :https://blog.csdn.net/Cinnazgc/article/details/858609 94
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值