主界面(关于信号检测)

上一篇已经说到了整个项目的总体,包括需求、分工,(因为项目要求功能少,就没有做更详细的设计),以及项目遇到的问题概要和涉及到的内容。
本篇主要说一说个人在主界面的开发的一些问题及解决方法
一、前期分析与设计
在一台专门定制的工程机上有有款app(下面都命名为模板app)是能够获取当前位置全网段的信号强度,通过反编译该app,大概了解到,其工作原理。
1、该app是通过AT指令来获取信号强度的(AT指令自行百度);
2、是通过SerialPort(串口接口)将AT指令发送到手机的硬件模块上;
反编译的方法可以参考下面的网址
http://blog.csdn.net/vipzjyno1/article/details/21039349/
串口的简单使用方式可以参考下面网址:
http://lpcjrflsa.iteye.com/blog/2097280

接下来是个人的通过网上资料,以及团队讨论,得出的结论(如果有明确的理论欢迎指正,因为没有硬件的支持所以没办法对结论进行验证)
1)上面提到的工程机有多个运营商的收发信号的模块,所以可以得到多个运营商的信号强度;
2)通过反编译的代码可以得出,模板app是通过对串口dev/ttyUSB1 作为AT指令的传输通道。所以要在其他手机上实验就必须知道收发信号的模块通过哪个串口连接到手机,其次串口操作也是要root权限的,当然工程机好像是通过签名确定app权限,手机本身并没有root过;
总结:
按照工程机的方式是没办法完成功能需求,因为硬件的不允许,首先不是所有手机都有dev/ttyUSB1串口,例如小米就没有,其次仅是移动的手机是接收不了联通和电信的信号的。所以就设计一下UI界面,用模拟数据安慰一下。

二、主界面
1、启动页面是简单信号图
2、主界面包括
标题栏
编辑框(为空无法截屏)
中间部分显示全网段信号强度(用嵌套多层LinearLayout)
底部菜单栏(检测全部信号强度、截屏、查看记录三个按钮)
具体如下图:
这里写图片描述
整个主界面就使用了一个MainActivity,相对比较臃肿(有时间打算进行封装一下,例如截屏功能可以封装到一个工具类)
3、改进
1)可以通过定位的方式获取当前地点来作为站点名
2)截屏可以使用一个popupWindow短暂显示3秒后自动保存到指定目录,并且有个截屏的动态效果(因为考虑到截屏记录查看就是通过PopupWindow来查看的,到时封装一下就可以两处都使用)

三、补充
最后就是关于截屏和查看记录如果在6.0手机上运行会涉及到新的权限授予方式就由下一篇说明一下
下面地址可以下载整个项目源码:
https://github.com/YougeView/myTestSignal

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章