版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于JAVA的保安巡逻打卡系统设计与实现 1 1 1 2 22.保安巡逻特点及出现的问题 2.1保安巡逻的特点 2.2保安巡逻打卡中会出现的问题 43.相关技术 4 43.1.1相对布局RelativeLayou 53.1.2线性布局LinearLayou 53.2生命周期感知框架 54.高德地图API 64.1高德地图API简介 64.2地理围栏API运用 7 7 8 85.1.2地理围栏打卡功能 85.1.3查看打卡记录功能 85.2可行性分析 85.2.1技术可行性 9 9 97.1数据库 7.1.3数据库设计 7.1.4数据表设计 7.2用户注册功能设计 17.3用户登录功能设计 7.4地理围栏打卡模块设计与实现 7.5用户的打卡记录模块设计与实现 20 28.1测试说明 28.2测试用例 2 8.2.2登录功能测试表 8.2.3围栏打卡功能测试表 8.3测试数据表 37 参考文献 381理围栏API、JAVA语言、MySQL数据库等技术开发一个基于高德地图API的地保安进入围栏打卡成功;并使用MySQL数据库进行打卡数据的存储。【关键词】保安巡逻打卡、高德地理围栏球定位技术)和数据处理技术的不断成熟得到了进一步发展。近几年,这方面的技术来开发自己的产品。2地理围栏技术在用户进入某个特定的区域后,就会自才会通过GPS进行定位,打卡成功。这样,用地理围栏技术就能保证保安在对2在我国,第一个能够实现地理围栏服务功能并且提供给开发人员使用的就是百度的地理围栏技术。很多的开发人员已经开始使用这个技术开发了许多相关的应用。近期很火的使用到地理位置服务的社交应用,如GeGe,Miracle,GitHub等,都使用了百度的地理围栏技术来实现各种基于位置服务的功能。[2]Intel地理围栏技术能够在移动应用的平台上,把用户以及用户周边的各种位置信息整合起来,从而使得移动平台应用能够更加便利地为各种用户群体服务。Intel地理围栏技术的有着它自身的亮点,能够适中地调节系统的待机时间,降低系统耗电量,也能调节系统的响应时间,使得用户有一个更舒适的使用过程。该系统具有多地理隔离,情景感知等特点。[2]如今,共享单车随处可见,数量不断增多,这就导致了许多城市都出现了共享单车的管理问题,一直困扰着相关人员。为了解决这个问题,提出了利用百度地图上的电子地图的功能;这个电子地图能够在一个固定位置区域随机地划分出一个虚拟的电子围栏,通过GPS技术,定位到每一辆共享单车的位置;市民使用完共享单车之后,就要放到附近的划分的虚拟围栏内,当共享单车进入围栏后,就会被允许可以停放在此围栏内;但是共享单车不在地理围栏区域的时候就不会允许上锁,也就不能停放。使用这种地理围栏技术就能保证市民能将共享单车规1.3地理围栏简介地理围栏技术将虚拟栅栏与地理边界隔开,是用虚拟的围栏围出一个虚拟的地理界限。4]当我们的移动设备就是手机进入或者远离某个设定的区域时,通过定位,我们就可以自动收到关于这个位置区域的通知和劝告,在该区域活动时同样也会收到信息。地理围栏技术把地理区域划分为一个个网格,在被网格化之后,每个围栏内都有独立的应用需求分组图,终端用户可以通过自身或借助网络进行识别,用户的围栏信息可以共享,是一种双向互动。1.4本文主要研究内容在通过对目前的保安巡逻方面的搜索与研究,发现目前的保安巡逻大多数还停留在用纸质版签到的方式进行简单的到岗巡逻。随着社会经济的发展,各种地区也逐渐快速发展起来,就像我们身边的学校、小区等等,这些地方的占地面积3会不断的扩大,那么随之而来的安保问题也就越来越受到重视,保安巡逻是在这些地区预防犯罪的主要手段之一。在基于高德地图API的地理围栏功能上,本课题开发了一个基于电子围栏的保安巡逻打卡的APP。系统分为三个模块,用户模块,地理围栏打卡模块,打卡数据存储模块。APP运用Androidstudio来进行开发,在高德平台上下载相关的定位SDK进行定位,创建地理围栏,并设置用户的登录界面,通过JDBC连接云服务器上的数据库来进行保安巡逻打卡数据的存储。本课题的目的就在于使用地理围栏来规范保安的巡逻制度,确保保安能够真正的到岗巡逻,确保客户的安全,而不是在签到过后就不知道去向,这样学校、小区等等这些地方的人员安全无法保证,危险的情况随时发生,在定位的基础上实现地理围栏功能,保安在岗巡逻的问题可以随时解决。地理围栏高德API地理围栏功能云端数据库查看打卡记录用户登录用户打卡用户注册2.保安巡逻特点及出现的问题2.1保安巡逻的特点(1)安全巡逻需要范围广泛的目标。与其他职责相比,治安巡逻的对象和范4(2)还有很多不确定性。由于保安巡逻的范围很广,在巡逻时难免会发生一些不可预料的突发事件。所以就需要保安应对突发事件是能够沉着冷静,对一些比较危险的地方多加注意。(3)保安巡逻并不是一个静态的过程。整个巡逻队就是一个动态的管理系统,保安巡逻需要较长的一段时间,因此,保安就需要对自己保护的对象以及周围的环境、范围等等有一个全面的了解,以便实施各种安保措施。[1](4)具有特异性特征。安保巡逻的范围和目的都是明确的,就是要确保客户的生命财产安全,保证客户生活在一个健康安全的环境内。2.2保安巡逻打卡中会出现的问题警备巡逻队是指巡视所在地区或某地区的治安状况,排查各种违法犯罪行为。随着现在经济的快速发展,各种小区、学校等公共场所的规模逐步扩大,随之也会建起许多居民住宅楼,新型公寓楼等等,人口也越来越多,外来人作案的几率就会高很多,且很难被发现,居民的家中长时间没有人,空隙死角多等原因,大大提高了治安管理的难度,各种治安形势日趋复杂。5因此,保安巡逻在维护社会稳定和日常生活管理中都有着非常重要的作用。但也会存在着一些问题,主要表现在:(1)保安人员管理体制不够完善。目前的保卫人员,并没有经过专门人员的训练,也没有专门进行培训,当遇到紧急情况或者发生突发事件的时候,不能够冷静处理。(2)未采取可靠的安全措施。对于一些突如其来的案件,比如偷盗抢劫等,应对的反应比较慢,不能及时有效地采取相对应的措施。(3)保安签到制度不够完善。目前的绝大多数实行的是纸质版签到,无法确保保安在岗巡逻,如遇突发事件无法及时解决,人员的安全极易收到威胁。[5]3.相关技术3.1Android布局框架53.1.1相对布局RelativeLayout布局框架。要开发一个安卓APP,首先得要有一个简洁美观的界面,要设计这些界面,就要根据APP的功能需要来掌握相对应的框架布局。RelativeLayout布局是目前开发者经常使用的,它可以根据相对位置来计算控件的位置,而后者的位置取决于前者的位置。所以说它相对于其他布局来说是比较机敏的。在此应用中使用相对布局来设计打卡界面、用户的登录界面和查看打卡记录的界面。3.1.2线性布局LinearLayoutLinearLayout是Androidstudio里的线性框架。线性布局会让控件能在线性方向上依次排列,可以提供水平或者垂直排列。通过设置控件中的width参数来设置布局容器的宽度,height设置布局容器的高度。现行布局的定义方式有两种,一种是在xml布局文件中进行定义,另一种就是在程序中使用代码来动态定义。最为便捷的就是创建xml布局资源文件。3.2生命周期感知框架大多数程序组件都具有Android框架的生命周期。如果程序不依赖生命周期进行工作那么应用就有可能会崩溃。识别生命周期的一个常见模式是使用activity和fragment的生命周期方法来实现监听组件的各种功能。通常activity都继承于AppCompatActivity,AppCompatActivity实现了LifecycleOwner接□。7创建好Activity之后,还需要周期图:次返回前台次返回前台4.高德地图API产品。8现在这个发展飞速时代,我们依靠着互联网产品来丰富我们的生活,当术就被运用到现在的许多领域中,比如出行、社交、新闻、天气等等。9高德地图以各种各样的定位为基础,正是因为有了不论你是在家里还是在外面工作的高楼里,亦或者是在密林深山里面都能够实现准确定位。4.2地理围栏API运用本设计使用高德开发平台提供的Android定位SDK以及地图API的地理围栏功能来实现基本的定位和围栏内打卡的功能。[10]首先,在高德开发平台注册一个自己的账号,在官方网站的控制台上取得高德Key,拿到秘钥后就可以开始调用。(1)创建一个新的项目,进去首页就可以创建一个新的EmptyActivity的应用程序项目。(2)高德平台提供有相对应的开发包,我们只要下载相对应的开发包就可以了。如图4-1所示:相关下载开发者可自主选择功能,系统自动合并代码,生成一个包含多个功能的定制开发包,大大减小了包的体积。(3)Androidstudio配置工程首先需要通过复制集成定位SDK。将下载的jar文件复制到工程中的libs目录中,[11如果还有旧版本的定位jar文件,需要将它删除。接下来就可以配置build.gradle文件,这样,Androidstudio的环境配置就基本完成了。(4)Android配置完成后,就可以在这套定位SDK的基础上使用地理围栏功能,将代码写入,创建自定义的地理围栏。5.系统需求分析8本系统是基于电子围栏以及Android定位来开发的保安巡逻打卡系统。主要高德地图提供的Android定位SDK,利用接收到的经纬度信息在地图上显示。地本系统主要的功能就是在基于地理围栏的基础上实现保安巡逻过程中的打从技术方面看,本系统基本都是在安卓平台进行开发,使用Java语言写入程序,系统是一个打卡APP,整体难度不是很大,软件环境的开发并不是很难。需要下载Android定位SDK以及使用云端数据库来对保安的登录以及打卡数据进行存储、查阅。学习好Android技术,具备一定的开发经验就可以进行系统的CPU:AMDA6-7310APUwithAMDRadeonR4Graphics2.00GHz;系统客户端实现保安的注册登录功能以及打卡功能。登录打卡数据通过云服务器存储到数据库中。通过GPS定位到保安的位置,高德地理围栏功能判断保安是否进入围栏。如图7-1是系统的整体架构图。GPSGPS定位云服务器MySQL数据库高德地图地理围栏保安巡逻打卡系统MySQL是一种关系型数据库管理系统,可以使用SQL进行操作和管理,拥MySQL多种编程语言提供了相应的API,开发人员只需设置相应的驱动程序,就可以编写SQL语言对数据库进行增删改查,利用Java语言进行保安打卡系统应用的开发,可以通过MySQL厂商提供的JDBC驱动jar包,用Java语言使用JDBC在Android上直接操作MySQL数据库。就是用Java语言来执行SQL命令,非常的方便。通过这种方式,就可以在Navicatpremium远程查看到在官网上下载好“mysql-connector-java-5.1.48-bin.jar”这个包,将它添加到的连接信息;选择连接到云服务器的IP。添加JDB11主要包括下列对象,用户对象user,打卡记录对象history。在这里,根据用户对象以及打卡记录对象设计了两个数据库表。包括用户登录信息表(userinfor),用户打卡记录信息表(history)。用户登录信息表(userinfor)如表7-1用户登录信息表,用来记录用户注册以及登录的信息,用户id为该表的主键。参数名称数据类型字段大小是否为主键描述是否账号否密码2.用户打卡信息表用户打卡信息表(history)如表7-2,存储用户的ID(id),打卡地点的名称(name),用户账号名(user),打卡时间(time),参数名称数据类型字段大小是否为主键描述是否打卡地点名否用户账号否打卡时间7.2用户注册功能设计保安需要先注册属于自己的一个账号。在AndroidMainfest文件中将注册账Button等控件,并设置相应的属性。用户填写注册信息后,向服务器发送请求。下午1:53下午1:53←注册账号是注册成功否十注册主要实现代码:5.}elseif("".equals(p9.DialogUIUtils.dismiss(mBuildBean);10.Toast.makeText(getApplicationContext(),“此账号已存在”,13.“注册失败”,Toast.LENGTH_LONG).show();14.DialogUIUtils.dismiss(m7.3用户登录功能设计用户注册后可以进行登录。登录功能逻辑与注册相似。用户正确输入登录信息后,向服务器发送登录请求,没有问题就可以登录成功。账号账号密码图7-4登录界面登录开始登录开始填写登录信息判断密码是否错误>是一K-判断账号是否注册否一登录成功是十登录功能主要实现代码:1.publicvoidonCli5.}elseif("".equals(p6.Toast.makeText(this,"请您输入密码",T9.Toast.makeText(getApplicationContext(),"对不起,密码错误啦!",7.4地理围栏打卡模块设计与实现用户登录成功后点击登录按钮进入到地图定位页面,运用Android定位SDK实现定位功能。(1)打卡界面设置控件在界面正下方设置一个“未到打卡点”的标签,用户在进入定位打卡界面后就会看到。在界面的右上角也设置一个“打卡记录”的标签,方便用户在打卡成功后查看到自己的打卡记录。z,z,你好!朝阳路育才校广西师大育才校学院馆(2)获取定位数据需要配置AndroidManifest.xml文件,第一步,声明service组件,然后声明好各种权限;加入自己申请的高德Key。声明AMapLocationClient类对象,创建对象,设置发起定位的模式和相关参数。使用后回调函数,此方法每隔1000ms就会发起一次定位请求。激活定位的主要实现代码:1.publicvoidactivate(OnLocationChangedListenerlisten2.mListener=listener;3.if(mlocationClient==null){4.mlocationClient=newAMapLocationClient(th5.mLocationOption=newAMa6.mlocationClient.setLocationListener(this);7.mLocationOption.setInterval(1000);8.mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accu9.mLocationOption.setOnceLocation(false);(3)创建地理围栏只有定位开启成功后才能使用地理围栏的功能。声明地理围栏客户端fenceClient.setActivateAction(GeoFenceCl使用drawFence()方法设置根据围栏类型决定绘制圆形围栏还是多边形围2.LatLngcenter=newLatLng(fence.getCenter().getLatitude(),4.mAMap.addCircle(newCircleOptions5..radius(fence.getRadius()).strokeColor(Const.STROKE_COLOR)6..fillColor(Const.FILL_COLOR).strokeWidth(Const.STROKE_WIDTH));7.boundsBuilder.include(center);使用onMapClick()方法在地图上点击标记地点,在logcat中查看标记地点的经纬度,将选中的经纬度写入DPoint中,就会在选中的地点创建围栏。此系统创建了三个地理围栏,分别命名为“一号点”(广西师范大学育才校区15舍公寓楼)、“二号点”(广西师范大学第二文科综合楼)、“三号点”(广西(4)打卡功能通过button.setOnClickListener将设置好的打卡按钮依赖到活动中,使用3.Toast.makeText(MainActivity.this,enclosur请重新打卡",Toast.LENGTH_SHORT).show();13.Toast.makeText(MainActivity.this,"未在区域,打卡失败",7.5用户的打卡记录模块设计与实现在地理围栏打卡模块的右上角设置了一个activity即“打卡记录”的活动,用户在打卡成功之后会在打卡记录页面显示用户的打卡记录,包括用户的账号名,打卡的地点以及打卡的时间。(1)打卡记录界面设计在layout中使用相关布局架构RelativeLayout通过ListView组件能让打卡记录逐行列下来。只要打卡成功,记录就会存在其中。在左侧显示的是用户的名字,右侧显示打卡的地点和时间,这些信息会逐条显示在记录中。(2)打卡记录存储功能通过安卓的JDBC直接操作数据库,数据库连接到云服务器中,将保安的登录以及打卡数据存储到数据库中。使用ConnectionlikMySql(的方法连接数据库。主要实现代码:3.Class.forName(DBDRIVER4.Log.e(TAG,"驱动加载成功");9.conn=(Connection)DriverManager.getConnection(url,user,(3)保安自行查看打卡记录功能在打卡界面的右上角通过TextView组件设置一个打卡记录按钮。使用List这个类的方法,新建一个类MyListAdapte,写入getView方法,将云服务器数据新建一个HistoryActivity的类来显示保安的打卡记录。通过onCreate()函connection=DAO.likMySqlO3.Connectioncon4.ResultSetrSet=DAO.mysqlQuery("SELECT*FROMhistorywhereuser='"+account+"'",connect6.while(rSet.nex8.history.setUser(rSe9.history.setName(rSet.getString("name"));10.history.setTime(rSet.ge一号点2021-03-2213:52:288.系统测试8.1测试说明系统测试是软件或者项目开发中不可缺少的一部分。[16为了能够发现系统在实现和设计上的缺陷,一个好的测试计划可以极大地减少系统后期维护和升级的时间成本,提高开发效率。系统测试计划选择单元测试。测试时如果发现问题,就进行调试和修正。系统测试如图8-1所示:单元测试单元测试单元测试单元测试单元测试8.2测试用例用例名称测试条件米8),开始运行应用测试地点三号点(广西师范大学育才校区图书馆)测试步骤1.填写好注册信息,包括账号和密码2.单击注册测试结果若账号没有输入,则显示“账号不能为空”若密码没有输入,则显示“密码不能为空”若注册账户已存在,则显示“账号已存在”若注册账号密码无误,跳出提示“注册成功,请登录!”测试结论符合预期要求下午3:55下午3:55MapClockMapClock:账号不能为空下午3:55下午3:55*新账号|2017*新密码下午3:56下午3:56 *新账号2017MapClockMapClock:此账号已存在!图8-4账号存在下午4:06下午4:06保安打卡系统 账号密码注册账号图8-5注册成功8.2.2登录功能测试表用例名称登录功能测试测试条件米8),开始运行应用测试地点三号点(广西师范大学育才校区图书馆)测试步骤1.用户输入账号以及密码2.单击登录测试结果若账号密码为空,则显示“请输入账号或密码”若密码输错,则显示“密码错误”若账号还没有注册,则显示“密码错误或无此账号”测试结论符合预期要求测试抓图如图8-6、图8-7、图8-8:下午4:14下午4:14保安打卡系统账号密码注册账号图8-6输入账号下午4:13下午4:13保安打卡系统 密码注册账号图8-7输入密码下午4:15下午4:15保安打卡系统 账号2017密码注册账号8.2.3围栏打卡功能测试表用例名称围栏打卡功能测试测试条件米8),开始运行应用测试地点三号点(广西师范大学育才校区图书馆)测试步骤1.进入到围栏打卡界面,开始定位2.没进入地理围栏范围内时点击“未到打卡点”按钮3.进入围栏范围后点击“打卡”按钮测试结果若应用定位失败,则系统提示“定位失败”若未进入围栏就打卡,则系统提示“未在区域,打卡失败”若进入围栏打卡,则系统提示“打卡成功”测试结论符合预期要求测试抓图如图8-9、图8-10、图8-11:下午4:36下午4:36广西师范大第二文科综合楼达人大道广西师大育才校区-图书馆西师范大MapClock:未在区域,打卡失败高德地图十广西师大育才校区-图书馆MapClock:进入围栏图8-10进入围栏十下午4:392017,你好!高德地图图8-11打卡成功打卡记录十8.2.4用户查看打卡记录测试表用例名称用户查看打卡记录测试测试条件(小米8),开始运行应用测试地点三号点(广西师范大学育才校区图书馆)测试步骤1.进入到围栏打卡界面,开始定位2.进入围栏范围后点击“打卡”按钮3.点击右上角“打卡记录”,进入打卡记录界面测试结果户名、打卡地点以及打卡时间测试结论符合预期要求测试抓图如图8-12:下午4:48下午4:482017打卡记录2017打卡记录图8-12打卡记录测试设备打卡时间测试地点测试结果数据存储广西师大图书馆进入围栏后打卡成功打卡信息成功存到数据库中广西师大15舍进入围栏后打卡成功打卡信息成功存到数据库中广西师大二文楼进入围栏后打卡成功打卡信息成功存到数据库中广西师大图书馆进入围栏后打卡成功打卡信息成功存到数据库中广西师大15舍进入围栏后打卡成功打卡信息成功存到数据库中论文主要研究基于Java语言,使用Androidstudio进行开发;同时运用高德及打卡记录的存储在数据库MySQL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓管员工作总结(资料23篇)
- 2026年北京市朝阳区中小学教师招聘考试真题解析含答案
- 2026年湖南省重点学校小升初入学分班考试语文考试试题及答案
- 2025年辽宁省盘锦中小学教师招聘考试试卷带答案
- 第2课 数据输入有诀窍教学设计小学信息技术青岛版五年级下册-青岛版
- 北师大版七年级全册第三单元 学习快车道第六课 我的记忆法宝教案
- 数学二年级下册四 认识万以内的数第二课时教案
- 人教版 (新课标)必修四2 雷雨教案
- 人教精通版五年级下册Lesson 2教案
- 非遗剪纸窗花的现代创意与应用【课件文档】
- 中国过敏性紫癜诊疗指南(2025版)
- (一诊)2026年兰州市高三模拟考试地理试卷(含答案)
- 安徽商贸单招2026校考真题
- 中国建筑机电安装行业资质管理与竞争态势
- 2025-2026学年北京市西城区高三(上期)期末考试地理试卷(含答案详解)
- 南瑞集团在线测评试题
- 2026浙江工商大学后勤服务中心商贸服务部劳务派遣人员招聘2人笔试备考试题及答案解析
- 2026春招:鞍钢集团笔试题及答案
- 2026年上海市春季高考作文解析、对全国卷考生的启示、标杆范文
- 字母表示数(课件)-四年级下册数学北师大版
- 2026黄河勘测规划设计研究院有限公司招聘高校毕业生笔试(公共基础知识)测试题附答案解析
评论
0/150
提交评论