美文网首页
安卓应用实现二维码生成

安卓应用实现二维码生成

作者: 佳佳爱科技AITech | 来源:发表于2020-08-27 20:59 被阅读0次

完成如下功能开发:

1. 点击按钮,生成QRCode

2. 成功POST请求服务器接口

3. 查看服务器返回内容(QRCodeResponse)

4. 查看服务器日志,检查Nginx反向代理webSocket 60秒内始终保持长连接

开发过程:

1. 利用okhttp3和retrofit向服务器发起POST请求, SUCCESS之后,服务器会返回二维码生成地址和二维码过期时间 listener.onRefresh(rsp.web_url, rsp.expire_time, handler);

2. 通过服务器返回的web_url地址,作为content,生成二维码图片qrCodeDisplay(final String content, final String expired_time); 通过Timer.schedule newTask定时检测二维码过期时间和刷新界面; 于此同时,服务器建立websocket连接保持双向通信,创建线程监视二维码过期 (此步骤可以优化,目前是用timer,还用了thread,超时就关闭websocket,应该可以在一处统一监测管理)

3. 两种方法解决Nginx反向代理websocket自动断开问题。一个是,保持okhttp长连接活跃状态keep-alive;一个是,一分钟内主动发送心跳包保持websocket不断。目前采用前者,因为这个方式很简单,在Init() 方法,加入OkHttpClient mOkHttpClient = new OkHttpClient.Builder().pingInterval(57, TimeUnit.SECONDS).build(); 每间隔57秒建立一次OkHttp连接

4. 通过日志,检查结果

Demo app 展示:

Demo App

日志检查:

API service POST 成功:

code 10000

WebSocket build成功,并保持心跳连接与通讯:

websocket 连接

核心代码:

1. 接口请求代码:

ApiService POST请求

2. 生成二维码图片

生成二维码

3. websocket 连接

ws 时间有限,还有待完善

相关文章

网友评论

      本文标题:安卓应用实现二维码生成

      本文链接:https://www.haomeiwen.com/subject/xjshsktx.html