平一平这几天百度好久浪费时间最后发现真的是小问题的坑,哭泣。
在做一个socket的手机客户端,服务器端在电脑(C++实现)
1. socket很快就连接上了,但一点击发送消息就闪退。有了上次的蓝牙动态权限申请(android7.0以上需要)的经验,还以为是这里出了问题。最后发现,android socket的链接和发送消息除了要新建线程之外,读写用的输入输出流不可在链接的线程中获取,再在发送消息的链接里使用。应当哪个线程发送消息就在哪个线程中获取socket输出流。
2. 手机开始调试程序的时候,android studio的logcat死活不输出。因为有些品牌的手机默认是不允许任何日志输出的。
解决:(flyme os)设置->辅助功能->开发者选项->性能优化->高级日志输出。
(顺便一提,上次遇到了手机无论如何也没法进入调试状态,解决办法:关掉悬浮球。(给魅族跪了
3. 传送字节的问题。writeUTF(),写的是UTF-16; writeBytes(),写的才是UTF-8。