魅族 M9 确实封闭了一些软件接口,为了打造自己的生态圈
先看这两张截图,左边是魅族 M9 “帐户与同步” 的界面,右边是 M9 运行 Skype 时报错的界面。这两张图说明了什么问题?如果你是一名开发者,或许已经猜出个大概:M9 作为一台深度定制的 Android 手机,已经故意封闭了一些软件接口,例如手机通讯录的接口。
Skype 在启动时需要调用到手机通讯录接口,但 M9 拒绝了 Skype ,导致它获取不到手机号码,所以程序报错,无法继续运行。
那么 “帐户与同步” 又是什么情况?现在它只能用魅族论坛的帐户登录,进去之后可以看到如下信息:
没错,这就是未来魅族程序商店和音乐商店的支付渠道,这就是 J.W 理想的 iTunes ,一个只属于魅族自己的生态圈。
那么,对开发者有什么影响呢?这意味着你要使用魅族提供的 SDK 才能调用到这些接口。
或许这也带来一个好处,就是把乱七八糟的扣费软件和流氓软件拒之门外,让 M9 更安全一些。
更新: 此外有人提到:“联系人接口是不会通过魅族的 SDK 提供的,只供魅族自己内部使用。”
更新 2:文章后有读者评论:一,手机上其实是无法取得本机的手机号码的,一般只能取到 IMSI(SIM 卡序列号);二,Skype 如果(根据 IMSI 等)检测到一些不支持的运营网络,也是会有这个提示的。
但是这个猜测仍然可能不成立,因为获取 IMSI 需要 “android.permission.READ_PHONE_STATE” 权限,如果魅族(深度地)把这个权限声明修改为 “meizu.permission.READ_PHONE_STATE”,即让软件代码不需要改动,只需要重新打个包——这是代价最小的改动了——也是 有可能导致为 android 设计的 Skype 跳出这个错误提示的。