坑 - 2016.11.30
今天发布会,忙了几个月的新产品终于要发布了。应该今晚官网就会上线了。
最近几天都在 iOS 安卓和 Unity 切来切去的写,头大的和一锅粥一样。遇到了两个问题比较坑:
Unity 音箱噪音问题
只要 Unity 运行,Android 外接的音箱在默认场景就会有一丝丝奇怪电磁干扰的声音。Unity 当中没有任何 Audio Source,我试着把所有 Camera 上的 Audio Listener 都禁用了,还是不行。
在 Unity Forum 上发现了一个相同问题,但是一年了并没有人解决。恩,如果你看到了一个回答那是我刚回答的……最后试了几种方法,主要都是去修改 Project Setting 里面的 Audio Setting,除了 Disable Unity Audio 可以解决这个奇怪的噪音问题,别无他法,还好 Unity 并不负责播放声音。
更蹊跷的是插上耳机就听不到这个噪音 = = 猜测可能是音箱有类似放大器的部分,将原本非常微弱的由 Unity 产生的声音放大了之后变成了听到的噪音。
坑。
安卓启动蓝牙服务的问题
用安卓 BluetoothBLE 和 iOS 的 CoreBluetooth 连接,iOS 做外设,安卓做主机。BLE 取消了 2.0 时代的蓝牙 Socket 连接方式,改成了现在的根据特征值读取,写入和订阅的这种传输数据方式。用框架开发并不困难,问题就出在当应用在开机自启动的时候,可能在创建 BluetoothManager 的时候,系统蓝牙服务尚未初始化成功,因此就会报错,而你也不知道要什么时候才能去初始化。
因此在这里你需要加一个 BroadCastReceiver 来监听系统蓝牙服务状态变化的通知,然后根据通知来决定初始化的时机,而不是在你应用启动的时候就去初始化。
在应用或服务 create 的时候注册 Receiver :
IntentFilter filter1 = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED); |
声明 Receiver :
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { |
在你的应用或服务 Destroy 的时候注销这个 Receiver :
unregisterReceiver(mBroadcastReceiver); |
完事,不得不说 BLE 的连接还是很稳定的。
记得最早看安卓和 iOS 蓝牙连接的时候看到了知乎这篇回答,看来整理一下代码也可以去好好回答一下了🌚 都没几个有用的回答。
坑。
闲扯
恩。周末终于强逼自己撸完了 Popularity Widget for GitHub , 还在审核中,这是一个可以统计你过往五个月每天的新增 star 变化趋势,其实是可以细化到每一个 star 你的用户和对应的仓库的,后面版本慢慢会更新,也可以统计到(虽然没有有效历史数据)过往四周的 follower 变化趋势。对于想要运营或维护,或者只是了解一下自己在 GitHub 上的人气值的朋友们应该挺有用。
还有给 EarthQuick 在 GitHub 搭的后端 = = 因为拿 Mac mini 做服务端处理数据存到 GitHub 的仓库作为 RESTful API 访问竟然还被人喷了,不太明白现在 GitHub 早都去掉了连续提交成就之后还在关心小绿块的人的心态……最主要的是,我哪有时间和钱(妈个鸡别和我提钱)单独去搞个服务器维护啊 word 哥。