微信号:infoqchina

介绍:有内容的技术社区媒体

第三只眼: 懒菜杂谈——浪费生命的事情

2014-03-17 19:34 杨赛

去年年底的时候我脑袋一热换了移动4G。这本来是件好事,可惜当时签约入手的那台华为手机太不争气,才买了一周就雪花屏歇菜(当时大家都问我是不是买了一台掌上电视),虽然后来修好了不过用起来总感觉不怎么对劲,于是新手机被搁置,继续用着之前的谷歌四儿子,花着4G的钱用着2G的网络。在蹲墙角画圈圈发誓以后再也不贪便宜搞什么合约机之余,也一直在寻摸其他的移动4G机型,就这样过了三个月。


两周前终于没忍住,入了一台索尼的Xperia Z1移动4G版,防水机,支持NFC支付,最重要的是4G网络很稳定,皆大欢喜。但是每次换新机子,总有一个麻烦事儿:


Google服务的同步问题。


为了用上移动4G(安卓机),很显然你需要买一台国行机,而众所周知国行机是把Google服务全部阉割的。之前华为那台机子,我花了两天时间去调教——root、刷机、装Google服务、应用数据迁移(两天的生命就因为尼玛的雪花屏被浪费掉了),而这次的索尼机可能因为型号比较新、比较小众,手头的root工具都不好使,而论坛里的root方式看起来太过折腾又风险太大,思量片刻随即放弃,结果就是我必须面对索尼机无法安装Google服务的事实。


Google Play不能用相对来说是个小问题,我需要的应用不多而且都有其他途径获取。


Gmail可以用K-9 Mail来收,这个开源的邮件客户端目前来看似乎是Android系统上唯一支持IMAP push email功能的客户端,并且支持按会话分组。虽然K-9在操作手势方面比Gmail App差了一大截,不过看看邮件还是勉强可以的,至少比Android自带的邮件App好用。


最麻烦的是通讯录和日历,需要在Google、Mac和索尼之间做同步。


首先,索尼上默认支持Exchange ActiveSync账号,本来Google账号是支持通过ActiveSync方式接入到设备的,但是前两年Google脑子抽筋说不支持了,于是这个最简单的法子行不通了。


下一个可选方案是通过第三方应用进行双向同步,比如百度云网盘的通讯录同步功能——在四儿子和索尼上都开启百度云网盘的通讯录同步功能,把四儿子丢在家里让Google跟百度之间完成同步,索尼就可以从百度云间接拿到Google通讯录了。理论上这是行得通的,不过试用了两天之后,我的1k多个联系人莫名其妙就变成了4k多,新增的都是没名字的“幽灵”联系人,而且还在不断增长,吓得我赶紧把百度同步关掉。当时我在索尼上同时引入了百度通讯录同步和微信电话本,所以我也搞不清楚到底是哪里出了问题(在系统中同时引入一个以上的新事物往往会导致搞不清楚的问题出现),总之结果是这个同步的法子是不得不放弃了。好在Mac上有个Cobook应用可以按更新时间查询联系人,很方便的把这些新增的“幽灵”联系人都干掉了,否则光是把这些幽灵清洗干净也要花费我好几天的时间。


第三方应用还考虑过Outlook.com,也就是原来的Hotmail服务。Outlook账号在索尼上可以直接通过Exchange ActiveSync添加——这恐怕也是我所有的账号中能通过这个方法添加的唯一账号,所以接下来只要在Mac上也添加Outlook账号并把Outlook跟Google同步即可。研究的结果是:1、Mac上只能接入Exchange账号,Exchange ActiveSync仅支持移动设备,而Outlook.com仅提供了ActiveSync的接入方式,没提供桌面端的接入方式,因此Mac上压根无法添加Outlook.com的账号;2、在Outlook.com里面有个接入Google联系人的选项,你授权之后,在浏览器里的确能够看到那1k多个Google联系人——但也就到此为止了。这些Google联系人永远无法通过你的Outlook账号显示在你的安卓手机上。说来也挺奇怪的,难道Outlook.com的团队认为大家都是用浏览器用邮件的吗?如果说百度云的方案有bug,那Outlook.com的同步方案就是完全不可用。


找啊找,终于给我找到了Mac、Google和索尼手机都支持的东西了:CardDav和CalDav。CardDav用于做通讯录同步,在安卓机上安装CardDav Sync Adaptor即可使用;而CalDav则用于做日历同步,在安卓机上安装CalDav Sync Adaptor即可使用。事实上类似的工具还是挺多的,下载一个F-Droid搜索Dav能搜出一堆来,关键时刻还是开源的东西靠谱啊。


本来故事到这里就结束了,但是……


CalDav Sync Adaptor添加Google日历失败。原因是,Google不支持用于自动检测CalDav资源的RFC 5397。


尼玛!


于是剧情到这里开始转折,我做出了另一个决定:以Google日历为起点,逐步放弃Google服务。既然CardDav和CalDav被验证是可靠的同步方案,又何必非抱着Google不放呢?


我选择OwnCloud。


OwnCloud表面上看是个跟Dropbox差不多的网盘,但却走上了完全不同的发展方向。按陈沙克同学的话说,OwnCloud“实现了很多人的企业网盘的梦想”:你不仅可以在同一个地址下设置多个账号进行文件、日历、通讯录的同步,还可以设置不同账号的权限,甚至还可以添加一些新的应用(比如火狐的书签同步),而这一切都是开源的!你只需要搞一台服务器。虽然它的界面有些老土,但那又怎么样呢?你获得了更多的自主权。


总之,我花了5美刀买了一台DigitalOcean,在Ubuntu 13.10上面用一行命令装上了OwnCloud,将我的Google日历都迁移了过去。稳定了之后,我应该会把我的通讯录也迁移过去。


至此,这个折腾生命的故事终于告一段落。


本次折腾的教训如下:


1、不要为了节省几个钱而让自己被移动绑架两年

2、不要给一个系统同时引入一个以上的变化

3、不同互联网厂商提供的服务之间的鸿沟是巨大的,一个关键环节的缺失会引起巨大的麻烦

4、在开源界,只有想不到的,没有做不到的

5、如果条件允许,别买国行机!


“第三只眼”:

主要由InfoQ编辑专门为微信公众账号自编自写的一个栏目,旨在表明编辑态度及表述平日见闻和思考,期望成为和读者沟通的桥梁。亦接受投稿:spark@cn.infoq.com

 

今日专栏作者:

杨赛(@lazycai),InfoQ中文站编辑。到处串门的互联网信徒,相信规则的力量。

 

***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 python中执行命令的3种方法小结 区块链技术之以太坊代码剖析 1 - Ethereum Kernel 今晚公开课:手Q专项测试最佳实践 QQ空间直播秒开优化实践 如何用监控宝自定义监控搞定个性化应用系统运维