基于 Android平台 WI-FI侦测及位置分析
基于Android的WIFI室内定位技术研究
基于Android的WIFI室内定位技术研究一、本文概述随着移动互联网的飞速发展,基于位置的服务(LBS)已逐渐成为人们日常生活中不可或缺的一部分。
室内定位作为LBS的重要组成部分,其精确度和稳定性对于提升用户体验、优化服务流程等方面具有重要意义。
在众多室内定位技术中,基于Android平台的WIFI室内定位技术凭借其低成本、易部署、高覆盖率等优势,逐渐成为研究热点。
本文旨在深入研究基于Android的WIFI室内定位技术,分析其原理、优势及挑战,并探讨其在实际应用中的潜力和发展方向。
文章将介绍WIFI室内定位技术的基本原理和关键技术,包括信号指纹地图构建、信号特征提取与匹配等。
文章将详细分析基于Android平台的WIFI室内定位系统的设计与实现,包括系统架构、关键算法及优化策略等。
文章还将探讨该技术在不同室内环境下的定位性能,以及在实际应用中可能遇到的挑战和问题。
文章将总结基于Android的WIFI室内定位技术的研究现状和发展趋势,为相关领域的研究人员和开发者提供参考和借鉴。
通过本文的研究,希望能够推动基于Android的WIFI室内定位技术的进一步发展,为提升室内定位精度和用户体验做出贡献。
二、WIFI室内定位技术基础WIFI室内定位技术是利用无线网络中的接入点(Access Points,APs)信号特征来实现位置估计的一种定位方式。
这种技术主要基于信号传播特性、设备指纹和位置指纹等原理进行工作。
WIFI信号在室内环境中的传播受到多种因素的影响,如建筑物的结构、室内布局、家具和其他障碍物等。
这些因素会导致信号的衰减、反射、折射和衍射等现象,进而使得WIFI信号在室内环境中的传播变得复杂。
然而,通过测量和分析WIFI信号的传播特性,如信号强度(RSSI,Received Signal Strength Indicator)和到达时间(TOA,Time of Arrival)等参数,可以估算出信号源与用户设备之间的距离和角度,从而实现定位。
Android平台下基于无线信号强度的定位系统的实现
硕士学位论文(工程硕士)Android平台下基于无线信号强度的定位系统的实现IMPLEMENTATION OF WIRELESS LAN POSITIONING SYSTEM BASED ON SIGNAL STRENGTH ON ANDROID PLATFORM赵小东哈尔滨工业大学2011年12月国内图书分类号:TP393.1 学校代码:10213 国际图书分类号:621.3 密级:公开工程硕士学位论文Android平台下基于无线信号强度的定位系统的实现硕士研究生:赵小东导师:王鸿鹏教授申请学位:工程硕士工程领域:计算机技术所在单位:中国南山开发集团答辩日期:2011年12月授予学位单位:哈尔滨工业大学Classified Index: TP393.1U.D.C: 621.3Dissertation for the Master’s Degree of EngineeringIMPLEMENTATION OF WIRELESS LANPOSITIONING SYSTEM BASED ON SIGNAL STRENGTH ON ANDROID PLATFORMCandidate:Zhao XiaodongSupervisor:Prof.Wang Hongpeng Academic Degree Applied for:Master of Engineering Speciality:Computer Technology Affiliation:China Nanshan DevelopmentCorporateDate of Defence:Dec, 2011Degree-Conferring-Institution:Harbin Institute of Technology摘要随着3G网络的大规模建设与智能移动终端的迅速普及,移动互联网时代已经到来,定位系统更是成为移动通讯设备的缺省配置。
基于位置指纹算法的Android平台WiFi定位系统
基于位置指纹算法的Android平台WiFi定位系统
近年来,随着城域无线基础网络的发展,热点(AP)的覆盖率大幅度提高,由于定位服务需求的增加以及WiFi应用领域的扩大,WiFi定位成为一种
有效的定位方式。
GPS卫星定位是最主要的定位方式,它需要在相对空旷、高层建筑不密集的地方获得较准确的定位,当人们处在室内或高楼林立的市区,
定位精度明显降低甚至不能定位。
此时,利用无处不在的WiFi网络将能够弥
补GPS定位的不足。
目前大多数的WiFi无线定位算法主要为:基于到达时间、到达角度、到达时间差的模型定位及基于接受信号强度(RSSI)的位置指纹定位
算法,由于位置指纹算法的无线定位方式不需要已知AP的位置信息及准确的
信道模型,该算法在定位性能以及可用性上具有更大的优势。
因此,本文首先
设计了整体的系统框架,通过研究分析了该算法目前存在的问题,提出了改进
方案,并在Android平台上实现完整的定位系统。
1系统整体设计
本系统的设计目标是在Android智能终端上实现实时WiFi定位系统,该系统包括客户端、数据服务器以及定位服务器。
为了使定位过程和服务器通信
过程相对独立,分别设置了专门用于定位的AP热点和客户端与服务器之间的
通信AP热点,可有效降低系统环境搭建的初期成本。
本方案的系统框架如
2系统实现
2.1客户端模块设计
本系统采用客户端/服务器(c/s)的网络架构,客户端的定位过程主要包括WiFi无线信号扫描、数据传输、界面显示等,该过程的流程。
android 定位原理
android 定位原理Android定位原理是利用全球定位系统(Global Positioning System,简称GPS)、北斗导航系统、Wi-Fi、蓝牙和移动网络等技术来获取设备的地理位置信息。
具体工作原理如下:1. GPS定位:GPS定位是通过接收卫星发出的信号来计算设备的准确位置。
当设备开启GPS定位功能时,它会接收到来自卫星的信号,并通过三角定位原理计算出设备的经度、纬度和海拔信息。
GPS定位准确度较高,但需要有良好的卫星信号覆盖。
2. 北斗定位:北斗定位与GPS定位类似,但使用的是中国的北斗导航系统。
它通过接收北斗卫星发出的信号来确定设备的位置,可以在没有GPS信号的情况下进行定位。
北斗导航系统已经实现全球覆盖,所以在中国以及其他部分国家地区,设备可以通过北斗定位来获取地理位置。
3. Wi-Fi定位:Wi-Fi定位利用设备附近的Wi-Fi信号来确定设备所在的位置。
当设备连接到Wi-Fi网络时,它会扫描周围的Wi-Fi基站,并将扫描到的信息与地理位置数据库进行比对,从而确定设备的位置。
Wi-Fi定位定位准确度较高,尤其在城市区域有大量Wi-Fi覆盖的地方。
4. 蓝牙定位:蓝牙定位通过设备与周围的蓝牙设备进行通信来确定设备的位置。
当设备检测到附近的蓝牙设备时,它会通过蓝牙信号强度以及设备之间的距离来进行定位。
蓝牙定位通常用于室内环境中,准确度相对较低。
5. 移动网络定位:移动网络定位是通过设备连接的移动网络基站来确定设备的位置。
移动网络定位相比于其他定位方式,准确度较低,但可以在没有其他定位方式可用时提供大致的位置信息。
综上所述,Android定位原理是通过接收GPS、北斗定位、Wi-Fi、蓝牙和移动网络等信号,利用相应的定位技术来确定设备的地理位置信息。
不同的定位方式在准确度和使用场景上存在差异,可以根据实际需求选择合适的定位方式。
基于Wi-Fi的信息采集与定位系统设计
基于Wi-Fi的信息采集与定位系统设计发布时间:2021-07-28T09:55:17.263Z 来源:《中国科技信息》2021年9月上作者:宁伟强[导读] 随着科技的发展,智能手机和4G网络迅速普及。
由于大部分地区网络流量收费较高,运营商公共WLAN热点信号强度较弱,Wi-Fi 主密钥等软件应运而生。
宁伟强身份证号码:450902199003****11摘要:随着科技的发展,智能手机和4G网络迅速普及。
由于大部分地区网络流量收费较高,运营商公共WLAN热点信号强度较弱,Wi-Fi主密钥等软件应运而生。
人们可以通过这个软件共享连接到手机的WiFi热点,并将热点信息数据上传到服务器数据库。
因此,当其他用户使用该软件时,他们不仅可以通过软件的内置地图查看某个区域是否有共享的Wi-Fi热点,还可以通过其他用户共享的Wi-Fi密码免费上网。
本文利用智能手机作为定位设备,搜索和收集周围无线接入点的信息,并将信息数据上传到后台服务器,实现了一个无线信息采集和定位系统。
该系统利用GPS定位服务和手机的Wi-Fi功能,可以获取手机设备的位置信息,并通过百度地图显示当前位置,可以直观显示设备的当前位置。
同时通过手机扫描采集周围的无线AP信息,最后通过Socket通信将采集到的无线AP信息和GPS位置信息以JSON格式发送到远程Socket服务器,实现Wi-Fi的信息采集和定位。
关键词:Wi-Fi;信息采集;定位系统设计 1 系统整体设计本文设计的Wi-Fi信息采集定位系统主要采集智能手机周围的无线AP数据,结合设备当前的位置信息,实时显示在百度地图上,并将采集到的数据发送到远程服务器进行存储。
智能终端启动采集客户端后,首先判断手机是否启动了GPS定位服务。
如果没有,直接跳转到手机GPS的设置界面。
启动GPS后,主界面会在短时间内显示当前GPS信息,包括海拔和经纬度,然后通过百度地图显示。
然后用户可以点击查看按钮查看周围Wi-Fi的详细情况,界面会跳转到Wi-Fi列表。
基于Android系统的无线监控系统
基于Android 系统的无线监控系统靳建林,刘晓燕(安徽理工大学,安徽淮南232001)摘 要:把研究的重点放在了无线监控,完成了A ndr oid 系统下的无线监控系统的设计。
G oog le 的A ndr oid 操作系统被各大手机厂商广泛采用,基于此系统的应用程序在不断丰富,但在无线监控方面还没有相应的开发。
关键词:A ndro id;W i F i;无线路由器中图分类号:T P311.52 文献标识码:A 文章编号:1672 7800(2011)06 0071 02作者简介:靳建林(1985-),男,河北石家庄人,安徽理工大学计算机学院硕士研究生,研究方向为计算机控制与网络应用;刘晓燕(1986-),女,山东淄博人,安徽理工大学经管学院硕士研究生,研究方向为经济与网络管理。
1 Android 简述A ndroid 平台的最大优势就是开放性,开发的平台允许任何移动终端厂商加入到Android 联盟中来。
显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
这一点还是与Android 平台的开放性相关,由于An droid 的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。
功能上的差异和特色,却不会影响到数据同步甚至软件的兼容。
Google 从搜索巨人到全面的互联网渗透,G oogle 服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android 平台手机将无缝结合这些优秀的Google 服务。
2 系统的设计与实现本系统只要一台带无线网卡的电脑,一台无线路由器和一部Android 手机即可实现。
系统框架如图1所示:图1 系统实际框架图由上图可知,A ndroid 手机的摄像头是用来充当系统的监视器的,而无线路由器为手机和电脑之间的通讯构建了桥梁。
6 在实验室内业余制作印刷电路板按照图5中的工艺流程,由PCB 图纸最终得到一块PCB 实物板,在做好的印刷电路板上焊接元器件后,通电测试电路板功能正常与否。
基于安卓平台的手机定位软件开发
4、加强应用程序的测试和优化,减少bug和错误。
总之,基于Java语言的安卓手机软件开发需要掌握Java语言的基础知识和 Android系统的开发流程,同时需要注重应用程序的性能、安全性和用户体验等 方面的优化。通过不断学习和实践,可以开发出高质量的安卓应用程序,满足用 户的需求。
谢谢观看
一、引言
一、引言
手机定位软件是一种可以帮助用户快速定位并获得位置信息的应用程序。在 安卓平台上,手机定位软件的需求日益增长,这不仅源于用户对位置服务的多样 化需求,还因为安卓系统的高度开放性和灵活性。开发一款基于安卓平台的手机 定位软件对于满足用户需求和提高市场份额具有重要意义。
二、需求分析
二、需求分析
三、市场分析
三、市场分析
1、现状:目前,手机定位软件市场已经相当成熟,在安卓平台上,存在多种 定位技术,如GPS、基站定位和Wi-Fi定位等。然而,大多数用户对于定位软件的 精准度、稳定性和安全性仍抱有较高期望。
三、市场分析
2、趋势:未来,手机定位软件市场将朝着更加多元化和个性化的方向发展。 开发者将需要不断创新和优化产品,以满足用户的不断变化的需求。同时,随着 5G技术的普及,定位软件的运行速度和定位精度将得到进一步提升。
五、软件测试
五、软件测试
1、功能测试:测试定位软件的主要功能是否能够正常运行,确保各项功能满 足需求且无明显缺陷。
五、软件测试
2、性能测试:测试软件的性能表现,包括响应时间、内存占用情况等指标, 以确保软件运行流畅且资源利用合理。
五、软件测试
3、兼容性测试:测试软件在不同型号、品牌的安卓设备上的兼容性,确保软 件能够在不同设备上稳定运行。
1、安装Java开发工具包(JDK)和集成开发环境(IDE),如Eclipse或 IntelliJ IDEA等。
Android开发获取GPS位置,包含apnwifigps几种定位方法
Android开发获取GPS位置,包含apnwifigps几种定位方法一部分:几种定位简述1.gps定位:优点:最简单的手机定位方式当然是通过GPS模块(现在大部分的智能机应该都有了)。
GPS方式准确度是最高的缺点1.比较耗电;2.绝大部分用户默认不开启GPS模块;3.从GPS模块启动到获取第一次定位数据,可能需要比较长的时间;4.室内几乎无法使用。
这其中,缺点2,3都是比较致命的。
需要指出的是,GPS走的是卫星通信的通道,在没有网络连接的情况下也能用。
有网络、室内不可用、定位时间长、位置精确2.基站定位大致思路就是采集到手机上的基站ID号(cellid)和其它的一些信息(MNC,MCC,LAC等等),然后通过网络访问一些定位服务,获取并返回对应的经纬度坐标。
基站定位的精确度不如GPS,好处是能够在室内用,只要网络通畅就行。
有网络室内可用定位方式不精确3.WIFI定位和基站定位类似,这种方式是通过获取当前所用的wifi的一些信息,然后访问网络上的定位服务以获得经纬度坐标。
因为它和基站定位其实都需要使用网络,所以在Android也统称为Network方式。
与基站定位类似4.AGPS定位最后需要解释一点的是AGPS方式。
很多人将它和基站定位混为一谈,但其实AGPS的本质仍然是GPS,只是它会使用基站信息对获取GPS进行辅助,然后还能对获取到的GPS结果进行修正,所以AGPS要比传统的GPS更快,准确度略高。
有网络、类似gps定位、但比传统Gps定位更快,准确度略高第二部分:locationManager.getLastKnownLocation()总是会出现取不到数据的情况,所以这里没有使用这个方法,避免了取不到数据的问题第三部分:使用异步加载,提高性能================================代码===========================1.Activity1.package com.example.gpsdemo;2.3.import com.example.gpsdemo.util.GetLocation;4.import com.example.gpsdemo.util.LMLocation;5.6.import android.app.Activity;7.import android.app.AlertDialog;8.import android.app.ProgressDialog;9.import android.os.Bundle;10.import android.view.View;11.import android.view.View.OnClickListener;12.import android.widget.Button;13.import android.widget.TextView;14.15.public class MainActivity extends Activity {16.LMLocation lmLocation;17.TextView textView;18.public MainActivity instance;19.private AlertDialog dialog;20.@Override21.public void onCreate(Bundle savedInstanceState) {22.super.onCreate(savedInstanceState);23.setContentView(yout.activity_main);24.textView = (TextView) findViewById(R.id.textView2);25.instance = this;26.dialog = new ProgressDialog(MainActivity.this);27.dialog.setTitle("请稍等...");28.dialog.setMessage("正在定位...");29.Button button = (Button) findViewById(R.id.button1);30.button.setOnClickListener(new OnClickListener() {31.32.@Override33.public void onClick(View v) {34.// TODO Auto-generated method stub35.new GetLocation(dialog, textView, instance).DisplayLo cation();36.}37.});38.39.}40.41.}2.与MainActivity对应的布局1.2.xmlns:tools="/tools"3.android:layout_width="match_parent"4.android:layout_height="match_parent" >5.6.<>< li=""> <>7.android:id="@+id/textView2"8.android:layout_width="wrap_content"9.android:layout_height="wrap_content"10.android:layout_centerHorizontal="true"11.android:layout_centerVertical="true"12.android:padding="@dimen/padding_medium"13.android:text="@string/hello_world"14.tools:context=".MainActivity" />15.16.<>< li=""> <>17.android:id="@+id/button1"18.android:layout_width="wrap_content"19.android:layout_height="wrap_content"20.android:layout_alignParentT op="true"21.android:layout_alignRight="@+id/textView2"22.android:layout_marginRight="52dp"23.android:text="定位" />24.25.3.AndroidManifest.xml1.2.package="com.example.gpsdemo"3.android:versionCode="1"4.android:versionName="1.0" >5.6.<>< li=""> <>7.android:minSdkVersion="8"8.android:targetSdkVersion="15" />9.10.<>< li=""> <>11.android:icon="@drawable/ic_launcher"12.android:label="@string/app_name"13.android:theme="@style/AppTheme" >14.<>< li=""> <>15.android:name=".MainActivity"16.android:label="@string/title_activity_main" >17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.4.工具类两个:(1)1.package com.example.gpsdemo.util;2.3.import android.app.AlertDialog;4.import android.content.Context;5.import android.os.AsyncTask;6.import android.util.Log;7.import android.widget.TextView; 8.9.public class GetLocation {10.AlertDialog dialog;11.TextView textView;12.Context context;13.14.public GetLocation(AlertDialog dialog, TextView textVi ew, Context context) {15.this.dialog = dialog;16.this.textView = textView;17.this.context = context;18.19.}20.21.public void DisplayLocation() {22.new AsyncTask() {23.24.@Override25.protected String doInBackground=\'#\'"26.LMLocation location = null;27.try {28.location = new GPSLocation().getGPSInfo(context);29.} catch (Exception e) {30.// TODO Auto-generated catch block31. e.printStackTrace();32.}33.if (location == null)34.return null;35.Log.d("debug", location.toString());36.return location.toString();37.38.}39.40.@Override41.protected void onPreExecute() {42.dialog.show();43.super.onPreExecute();44.}45.46.@Override47.protected void onPostExecute(String result) {48.if (result == null) {49.textView.setText("定位失败了...");50.} else {51.textView.setText(result);52.}53.dialog.dismiss();54.super.onPostExecute(result);55.}56.57.}.execute();58.}59.60.}(21.package com.example.gpsdemo.util;2.3.import java.io.BufferedReader;4.import java.io.InputStreamReader;5.6.import org.apache.http.HttpEntity;7.import org.apache.http.HttpHost;8.import org.apache.http.HttpResponse;9.import org.apache.http.client.HttpClient;10.import org.apache.http.client.methods.HttpPost;11.import org.apache.http.conn.params.ConnRouteParams;12.import org.apache.http.entity.StringEntity;13.import org.apache.http.impl.client.DefaultHttpClient;14.import org.apache.http.params.HttpConnectionParam s;15.import org.json.JSONArray;16.import org.json.JSONObject;17.18.import android.content.Context;19.import android.database.Cursor;20.import .ConnectivityManager;21.import workInfo.State;22.import .Uri;23.import .wifi.WifiManager;24.import android.telephony.TelephonyManager;25.import android.telephony.gsm.GsmCellLocation;26.import android.util.Log;27.28./**29.* ******************************************30.* 描述::GPS信息获取31.* @version 2.032.********************************************33.*/34.public class GPSLocation {35.private static int postType = -1;36.public static final int DO_3G = 0;37.public static final int DO_WIFI = 1;38.public static final int NO_CONNECTION = 2;39.40./**41.* 网络方式检查42.*/43.private static int netCheck(Context context) {44.ConnectivityManager conMan = (ConnectivityManage r) context45..getSystemService(Context.CONNECTIVITY_SERVICE);46.State mobile = conMan.getNetworkInfo(Connectivity Manager.TYPE_MOBILE)47..getState();48.State wifi = conMan.getNetworkInfo(ConnectivityMan ager.TYPE_WIFI)49..getState();50.if (wifi.equals(State.CONNECTED)) {51.return DO_WIFI;52.} else if (mobile.equals(State.CONNECTED)) {53.return DO_3G;54.} else {55.return NO_CONNECTION;56.}57.}58.59./**60.* 获取WifiManager获取信息61.*/62.private static JSONObject getInfoByWifiManager(Cont ext context)63.throws Exception {64.JSONObject holder = new JSONObject();65.holder.put("version", "1.1.0");66.holder.put("host", "");67.holder.put("address_language", "zh_CN");68.holder.put("request_address", true);69.70.WifiManager wifiManager = (WifiManager) context71..getSystemService(Context.WIFI_SERVICE);72.73.if (wifiManager.getConnectionInfo().getBSSID() == nul l) {74.throw new RuntimeException("bssid is null");75.}76.77.JSONArray array = new JSONArray();78.JSONObject data = new JSONObject();79.data.put("mac_address", wifiManager.getConnectionIn fo().getBSSID());80.data.put("signal_strength", 8);81.data.put("age", 0);82.array.put(data);83.holder.put("wifi_towers", array);84.return holder;85.}86.87./**88.* 获取TelephoneManager获取信息89.*/90.private static JSONObject getInfoByT elephoneManage r(Context context)91.throws Exception {92.JSONObject holder = new JSONObject();93.holder.put("version", "1.1.0");94.holder.put("host", "");95.holder.put("address_language", "zh_CN");96.holder.put("request_address", true);97.TelephonyManager tm = (TelephonyManager) context98..getSystemService(Context.TELEPHONY_SERVICE);99.GsmCellLocation gcl = (GsmCellLocation) tm.getCellLo cation();100.int cid = gcl.getCid();101.int lac = gcl.getLac();102.int mcc = Integer.valueOf(tm.getNetworkOperator().su bstring(0, 3));103.int mnc = Integer.valueOf(tm.getNetworkOperator().su bstring(3, 5));104.JSONArray array = new JSONArray();105.JSONObject data = new JSONObject();106.data.put("cell_id", cid);107.data.put("location_area_code", lac);108.data.put("mobile_country_code", mcc);109.data.put("mobile_network_code", mnc);110.array.put(data);111.holder.put("cell_towers", array);112.return holder;113.}114.115./**116.* 通过wifi获取GPS信息117.*/118.private static HttpResponse connectionForGPS(Context context)119.throws Exception {120.HttpResponse httpResponse = null;121.postType = netCheck(context);122.if (postType == NO_CONNECTION) {123.return null;124.} else {125.if (postType == DO_WIFI) {126.if ((httpResponse = doOrdinary(context,127.getInfoByWifiManager(context))) != null) {128.return httpResponse;129.} else if ((httpResponse = doAPN(context,130.getInfoByWifiManager(context))) != null) {131.return httpResponse;132.} else if ((httpResponse = doOrdinary(context,133.getInfoByTelephoneManager(context))) != null) { 134.return httpResponse;135.} else if ((httpResponse = doAPN(context,136.getInfoByTelephoneManager(context))) != null) { 137.return httpResponse;138.}139.}140.if (postType == DO_3G) {141.if ((httpResponse = doOrdinary(context,142.getInfoByTelephoneManager(context))) != null) { 143.return httpResponse;144.} else if ((httpResponse = doAPN(context,145.getInfoByTelephoneManager(context))) != null) { 146.return httpResponse;147.}149.return null;150.}151.}152.153./**154.* 通过普通方式定位155.*/156.private static HttpResponse doOrdinary(Context conte xt, JSONObject holder) {157.HttpResponse response = null;158.try {159.HttpClient httpClient = new DefaultHttpClient();160.HttpConnectionParams.setConnectionTimeout(httpCli ent.getParams(),161.20 * 1000);162.HttpConnectionParams163..setSoTimeout(httpClient.getParams(), 20 * 1000);164.HttpPost post = new HttpPost("http://74.125.71.147/l oc/json");165.StringEntity se = new StringEntity(holder.toString());166.post.setEntity(se);167.response = httpClient.execute(post);168.} catch (Exception e) {169. e.printStackTrace();170.return null;171.}172.return response;173.}174.176.* 通过基站定位177.*/178.private static HttpResponse doAPN(Context context, J SONObject holder) {179.HttpResponse response = null;180.try {181.HttpClient httpClient = new DefaultHttpClient();182.HttpConnectionParams.setConnectionTimeout(httpCli ent.getParams(),183.20 * 1000);184.HttpConnectionParams185..setSoTimeout(httpClient.getParams(), 20 * 1000);186.HttpPost post = new HttpPost("http://74.125.71.147/l oc/json");187.// 设置代理188.Uri uri = Uri.parse("content://telephony/carriers/prefer apn"); // 获取当前正在使用的APN接入点189.Cursor mCursor = context.getContentResolver().query (uri, null,190.null, null, null);191.if (mCursor != null) {192.if (mCursor.moveT oFirst()) {193.String proxyStr = mCursor.getString(mCursor194..getColumnIndex("proxy"));195.if (proxyStr != null && proxyStr.trim().length() > 0) { 196.HttpHost proxy = new HttpHost(proxyStr, 80);197.httpClient.getParams().setParameter(198.ConnRouteParams.DEFAULT_PROXY, proxy);199.}201.}202.StringEntity se = new StringEntity(holder.toString());203.post.setEntity(se);204.response = httpClient.execute(post);205.} catch (Exception e) {206. e.printStackTrace();207.return null;208.}209.return response;210.}211.212./**213.* GPS信息解析214.*/215.public static LMLocation getGPSInfo(Context context) throws Exception {216.HttpResponse response = connectionForGPS(context);217.if (response == null) {218.Log.d("GPSLocation", "response == null");219.return null;220.}221.LMLocation location = null;222.if (response.getStatusLine().getStatusCode() == 200) {223.location = new LMLocation();224.HttpEntity entity = response.getEntity();225.BufferedReader br;226.try {227.br = new BufferedReader(new InputStreamReader(228.entity.getContent()));229.StringBuffer sb = new StringBuffer();230.String result = br.readLine();231.while (result != null) {232.sb.append(result);233.result = br.readLine();234.}235.JSONObject json = new JSONObject(sb.toString());236.JSONObject lca = json.getJSONObject("location");237.238.location.setAccess_token(json.getString("access_token "));239.if (lca != null) {240.if (lca.has("accuracy"))241.location.setAccuracy(lca.getString("accuracy"));242.if (lca.has("longitude"))243.location.setLatitude(lca.getDouble("longitude"));244.if (lca.has("latitude"))245.location.setLongitude(lca.getDouble("latitude"));246.if (lca.has("address")) {247.JSONObject address = lca.getJSONObject("address");248.if (address != null) {249.if (address.has("region"))250.location.setRegion(address.getString("region"));251.if (address.has("street_number"))252.location.setStreet_number(address253..getString("street_number"));254.if (address.has("country_code"))255.location.setCountry_code(address256..getString("country_code"));257.if (address.has("street"))258.location.setStreet(address.getString("street")); 259.if (address.has("city"))260.location.setCity(address.getString("city")); 261.if (address.has("country"))262.location.setCountry(address263..getString("country"));264.}265.}266.}267.} catch (Exception e) {268. e.printStackTrace();269.location = null;270.}271.}272.return location;273.}274.275.}。
基于Android的WiFi安全检测系统
F福建电脑UJIAN COMPUTER福建电脑2018年第2期1引言随着网络技术的发展,人们对公共WiFi 的需求急剧增加。
然而,其所面临的安全问题也日益严重。
在公共WiFi 中,攻击者可利用中间人攻击技术,获取,篡改同一网络下他人的隐私信息;可以通过伪造WiFi 诱骗用户连接以盗取隐私数据。
为了避免可能导致的隐私泄露,财物损失,我们设计了基于安卓的WiFi 安全监测系统,可以帮助用户检测WiFi 的安全性。
2系统总体设计系统按需求共分两层五个模块来实现,界面层包括主界面模块和WiFi 管理界面模块,负责向用户反馈WiFi 安全检测情况。
业务逻辑层包括WiFi 管理模块,ARP 模块和DNS 模块,负责对WiFi 安全相关特征进行检测,保障用户网络安全。
系统总体设计如图1。
3软件核心功能实现原理用户在使用手机连接WiFi 时,通常是搜索WiFi 名称,输入密码,然后连接上网,很少有情况会需要自己再去配置网关,流量也仅仅是和网关在交换。
因此,用户默认的网关就是WiFi 接入点,于是WiFi 的BSSID 和用户的网关mac 将是同一个,基于此有了如下arp 检测原理:(1)获取BSSID ,也就是网关的Mac (mac1)(2)通过route 表信息获取全网段路由对应的网关IP (3)通过arp 表,查询此网关IP 对应Mac(mac2)如果mac1和mac2相同,则表示没有arp 攻击,如果不相同(mac2是arp 欺骗引入的),则arp 攻击正在发生。
但是如果用户配置了网关,也就是route 记录的IP 和BSSID 将没有任何关系,根据arp 发生并不会修改网关ip ,则不断监听arp 缓存表中网关IP 对应的mac 是否在变化,变化则表示arp 正在发生或者arp 攻击结束。
所以我们设计的ARP 检测分为两部分:第一部分为直接检测,若用户没有配置了网关,则直接检测mac1是否等于mac2较便捷快速。
《基于Android的室内WiFi定位应用程序的开发与研究》范文
《基于Android的室内WiFi定位应用程序的开发与研究》篇一一、引言随着科技的不断发展,人们对定位服务的需求日益增长。
传统的GPS定位技术在室内环境中常常受到限制,因此,室内定位技术成为了研究的热点。
其中,基于WiFi的室内定位技术因其成本低、覆盖范围广、定位精度高等优点,受到了广泛关注。
本文将详细介绍基于Android平台的室内WiFi定位应用程序的开发与研究。
二、系统需求分析(一)功能需求基于Android的室内WiFi定位应用程序需要具备以下功能:1. 扫描并收集室内WiFi信号;2. 分析WiFi信号强度,进行定位;3. 显示用户当前位置;4. 提供导航功能;5. 用户界面友好,操作简便。
(二)性能需求系统需具备高精度、低功耗、实时性、稳定性等性能要求。
三、系统设计(一)硬件设计系统硬件主要包括Android智能手机或平板电脑等移动设备,无需额外硬件设备。
(二)软件设计软件设计包括Android操作系统、应用程序及数据库三部分。
其中,应用程序是核心部分,负责实现定位、导航等功能。
数据库用于存储WiFi信号数据及用户信息等。
四、系统实现(一)WiFi信号扫描与收集通过Android设备的WiFi模块,扫描并收集室内WiFi信号。
将收集到的信号数据传输至应用程序进行处理。
(二)WiFi信号分析定位应用程序对收集到的WiFi信号数据进行分析,通过比对已知位置WiFi信号强度与当前位置WiFi信号强度,实现定位功能。
可采用指纹定位算法、三角定位算法等方法。
(三)用户界面设计用户界面需具备友好、简洁、易操作等特点。
可包括地图界面、定位信息显示、导航功能等部分。
五、实验与测试(一)实验环境搭建搭建室内实验环境,布置不同位置的WiFi设备,为实验提供数据支持。
(二)系统测试对系统进行功能性测试、性能测试、稳定性测试等,确保系统满足需求。
六、结果与分析(一)实验结果通过实验测试,系统可实现高精度、低功耗的室内WiFi定位,满足用户需求。
《基于Android的室内WiFi定位应用程序的开发与研究》范文
《基于Android的室内WiFi定位应用程序的开发与研究》篇一一、引言随着移动互联网的快速发展,室内定位技术逐渐成为了一个重要的研究方向。
在众多室内定位技术中,基于WiFi的定位技术因其低成本、易部署等优点受到了广泛关注。
本文将详细介绍基于Android平台的室内WiFi定位应用程序的开发与研究,为相关领域的研究和应用提供参考。
二、开发背景与意义随着智能手机和移动互联网的普及,Android系统已成为全球使用最广泛的移动操作系统之一。
因此,开发一款基于Android的室内WiFi定位应用程序具有重要的现实意义。
该应用程序可以广泛应用于商场、医院、大型活动场馆等室内场所,为用户提供精准的定位服务。
同时,该技术还可应用于物流配送、消防救援等需要精准导航的领域。
三、技术分析(一)WiFi定位技术WiFi定位技术主要利用无线信号传播特性和指纹库信息,实现室内定位。
该技术具有较高的定位精度和稳定性,且不需要额外的硬件设备支持。
(二)Android开发平台Android开发平台具有强大的功能支持、灵活的架构和广泛的设备支持等特点,是开发室内WiFi定位应用程序的首选平台。
此外,Android还提供了丰富的API接口,方便开发者进行二次开发和优化。
四、系统设计(一)系统架构设计系统采用客户端-服务器架构,其中客户端为Android应用程序,服务器端负责处理客户端的定位请求和数据存储。
系统架构设计需遵循模块化、可扩展和可维护性原则。
(二)数据库设计数据库用于存储WiFi指纹信息、用户信息等数据。
设计时需考虑数据的存储结构、访问速度和安全性等因素。
同时,需采用合适的数据库管理系统,如SQLite等。
(三)算法设计算法是WiFi定位技术的核心部分,包括信号采集、指纹库构建、定位算法等。
算法设计需考虑定位精度、实时性、稳定性等因素,并针对不同场景进行优化。
五、系统实现(一)客户端实现客户端主要实现WiFi信号的采集、指纹库的构建与更新、用户定位等功能。
《基于Android的室内WiFi定位应用程序的开发与研究》范文
《基于Android的室内WiFi定位应用程序的开发与研究》篇一一、引言随着科技的不断进步,定位技术已经逐渐成为人们日常生活中不可或缺的一部分。
其中,室内定位技术在商业、教育、医疗、安全等多个领域具有广泛的应用前景。
而基于Android平台的室内WiFi定位应用程序作为一种高效的室内定位手段,越来越受到人们的关注。
本文旨在研究并开发一款基于Android的室内WiFi定位应用程序,以提高室内定位的准确性和可靠性。
二、相关技术概述2.1 Android系统Android系统是一种基于Linux平台的开源移动设备操作系统,具有广泛的用户基础和丰富的开发资源。
本文所开发的室内WiFi定位应用程序将基于Android系统进行开发,以满足不同设备的需求。
2.2 WiFi定位技术WiFi定位技术是利用WiFi信号的传播特性和信号强度进行定位的一种技术。
该技术具有成本低、覆盖范围广、精度较高等优点,适用于室内定位场景。
本文将采用基于指纹算法的WiFi定位技术,以提高定位的准确性和稳定性。
三、系统设计3.1 系统架构本系统采用Android平台进行开发,主要包含客户端和服务器端两部分。
客户端负责采集WiFi信号信息并上传至服务器端进行处理,服务器端则负责存储和管理WiFi指纹信息,并根据客户端上传的信息进行定位计算。
3.2 数据库设计数据库是本系统的核心组成部分,用于存储和管理WiFi指纹信息。
本文将采用关系型数据库MySQL进行数据存储,以保证数据的可靠性和安全性。
同时,为了提高查询效率,将采用空间索引技术对WiFi指纹信息进行索引。
四、系统实现4.1 客户端实现客户端主要负责采集WiFi信号信息并上传至服务器端。
在Android平台上,可以通过调用Android API获取当前WiFi信号的MAC地址和信号强度等信息。
同时,为了减少网络传输量,可以对采集到的信息进行压缩处理。
在上传信息时,采用HTTP 协议将数据发送至服务器端。
116基于Android平台的WiFi定位_杨帆
网络测试技术 电 子 测 量 技 术 ELECTRONIC MEASUREMENT TECHNOLOGY第35卷第9期2012年9月 基于Android平台的WiFi定位杨 帆 赵东东(上海大学通信与信息工程学院 上海 200072)摘 要:随着智慧城市概念的提出,宽带无线通信技术WiFi等覆盖范围越来越广泛,智能手机的用户普及率越来越高,各行各业对定位业务的需求也越来越普遍。
但是,对于室内定位因无线屏蔽效应很难借助GPS、北斗等卫星定位系统来实现。
利用无处不在的WiFi信号和智能手机,设计了1套改进的基于位置指纹定位算法的室内定位系统。
实验表明,该系统具有实现简单、使用灵活并具有较高的定位精度。
关键词:智慧城市;智能手机;室内定位;位置指纹中图分类号:TP393 文献标识码:AWiFi location based on Android platformYang Fan Zhao Dongdong(School of Communication and Information Engineering,Shanghai University,Shanghai 200072)Abstract:With the concept of smart city was raised,broadband wireless communication technology WiFi s coverage ismore extensive and smart phone users are increased rapidly.It is also common for all walks of life to need locationservice.But,indoor positioning is difficult to implement by GPS and Beidou satellite as wireless shield.This paper useubiquitous WiFi signal and smart phone,designed a indoor positioning system which based on location fingerprintalgorithm.According to experiments,this system has the merit of implement simple,using flexibly and higher accuracy.Keywords:smart city;smart phone;indoor positioning;location fingerprint 本文于2012年6月收到。
wifi定位实验报告
定位实验题目:基于WIFI位置指纹的室内定位实验成员:2012年12月一、实验题目实验题目基于Wifi 位置指纹的室内定位实验实验要求学习android平台使用、android编程、android环境下wifi 设备查看操作。
实验内容利用最少数目的wifi 热点设备,能够实时地对手机进行定位。
二、实验目的目前全球定位系统(GPS ,Global Positioning System )是获取室外环境位置信息通过实施项目的最常用方式。
但由于卫星信号容易受到各种障碍物遮挡,GPS/APGS 等卫星定位技术并不适用于室内或高楼林立的场合,目前无线室内定位技术迅速发展,已成为GPS 的有力补充。
了解智能手机如何利用Wifi 热点设备信号强度进行室内定位。
三、实验原理1.Android 系统架构简介Android系统架构见图,它建立于Linux内核之上,包含了各种设备驱动和管理模块,囊括了非常齐全的类库和框架,包括轻量级数据库SQLite 、浏览器Webkit 等。
整个系统建立在Dalvik 虚拟机上,应用程序使用Java 语言编写。
Android 系统提供了丰富的框架(活动管理、位置管理等)来管理系统的软、硬件资源,整合了常用的应用程序(联系人、电话本等),并开放了很全面的 API 供用户使用,整个平台具有良好的开放性和扩展性。
2.采用基于射频指纹的定位方法移动终端需要获得周围AP的RSSI指纹特征,Android 系统提供的接口可以很方便地实现这一功能。
3.定位算法由于室内环境复杂,WiFi无线信号具有较强的时变无线信号传播衰减模型难以很好的表征距离与信号强度间的映射关系,采用基于射频指纹匹配定位方法,它具有较好的定位鲁棒性。
指纹匹配方式定位算法建立在实验数据基础上,它主要包括离线训练和在线定位两个阶段,其中离线训练阶段的任务是建立射频信号强度向量和客户端位置间的一一对应关系,形成一个指纹库(radio map),定位阶段则使用实时采集的信号强度向量去匹配训练阶段构建的指纹库,从而获得目标的位置估计。
《2024年面向Android平台的Wi-FiAP定位应用的设计与实现》范文
《面向Android平台的Wi-Fi AP定位应用的设计与实现》篇一一、引言随着移动互联网的快速发展,定位服务在人们的日常生活中扮演着越来越重要的角色。
Android平台作为全球最大的移动操作系统,其应用范围广泛,功能丰富。
本文将详细介绍面向Android平台的Wi-Fi AP定位应用的设计与实现过程,以实现对无线网络的精准定位和高效应用。
二、需求分析在设计Wi-Fi AP定位应用之前,我们首先进行需求分析。
该应用需要满足以下需求:1. 精准定位:通过Wi-Fi接入点(AP)信息,实现用户位置的精确测定。
2. 快速响应:在用户发起定位请求后,系统需快速给出反馈。
3. 高效稳定性:在各种网络环境下保持应用的稳定运行。
4. 界面友好:设计简洁、直观的用户界面,便于用户操作。
三、设计思路针对上述需求,我们设计出以下方案:1. 架构设计:采用Android平台常用的MVC(模型-视图-控制器)架构模式,将应用分为模型层、视图层和控制器层,实现各部分功能的分离和高效协作。
2. 数据库设计:建立Wi-Fi AP信息数据库,存储AP的MAC地址、信号强度等数据。
3. 算法设计:采用基于Wi-Fi指纹定位算法,通过比对用户当前环境中的Wi-Fi AP信息与数据库中的指纹信息,实现精准定位。
4. 用户界面设计:设计简洁、直观的用户界面,方便用户操作。
四、功能实现1. 数据采集与处理:通过Android设备的Wi-Fi模块采集周围的Wi-Fi AP信息,并将这些信息与数据库中的数据进行比对和处理。
2. 定位功能实现:利用Wi-Fi指纹定位算法,比对用户当前环境中的Wi-Fi AP信息与数据库中的指纹信息,计算出用户的位置信息。
3. 用户界面展示:将计算出的位置信息以地图或文字形式展示给用户。
同时,提供用户操作界面,方便用户进行各种操作。
4. 系统优化:针对不同网络环境和设备性能进行系统优化,提高应用的稳定性和响应速度。
基于Android平台和位置指纹算法的WiFi定位系统设计
基于Android平台和位置指纹算法的WiFi定位系统设计徐素素;谢宏
【期刊名称】《微型机与应用》
【年(卷),期】2017(36)18
【摘要】基于指纹定位算法,利用空间已有的WiFi网络设计了一种方便、高效的室内定位系统.本系统以Eclipse为开发环境,Java为开发语言,MySQL为数据库平台,其采集信号终端和定位终端均在Android 4.4操作系统运行实现.通过实验比较了KNN和WKNN两种算法的定位结果.实验结果表明,该系统无需额外硬件设备,操作简单,系统的定位精度在1 m左右.
【总页数】4页(P80-83)
【作者】徐素素;谢宏
【作者单位】上海海事大学信息工程学院,上海201306;上海海事大学信息工程学院,上海201306
【正文语种】中文
【中图分类】TP274.2
【相关文献】
1.基于Wifi网络的模糊聚类KNN位置指纹定位算法 [J], 吴彦波;孟广仕
2.使用位置指纹算法的WiFi定位系统设计 [J], 魏菲;李允俊;金华
3.基于层次聚类的WiFi室内位置指纹定位算法 [J], 王怡婷;郭红
4.基于位置指纹的WiFi室内定位算法研究 [J], 刘业辉
5.基于WiFi位置指纹室内定位算法的研究与实践 [J], 张会清;苏园竟;陈一伟
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南工业职业技术学院毕业设计课题名称基于Android平台WI-FI侦测及位置分析系(院)名称信息工程系专业及班级移动应用S2013-1 学生姓名李明学号 46 指导教师李俊成完成日期 2015年 12月 6日数据显示,中国已经成为WI-FI需求量最大的市场。
WI-FI在中国的渗透率达到21.8%。
到2016年,预计中国将新增1.1亿个WI-FI家庭,占全球WI-FI 家庭总量的31%。
随着笔记本、智能手机、平板电脑、智能手表等上网终端的普及,无线上网已融入到人们的工作学习和日常生活当中。
许多城市道路上已基本覆盖WI-FI,给人们带来方便的同时也带来了巨大的安全隐患,如通过伪造热点能获取用户网络账户密码、收集用户的信息、植入木马。
在无线WI-FI被肆意恶意利用的形势下,通过WI-FI泄密和窃密的事件屡见不鲜。
在WI-FI网络普及的今天,人们迫切需要一个能够侦测周边WI-FI安全的软件。
本软件是基于市场占有率最高的android系统开发的,只需要一部android 系统的手机即可直接运行,不需要外接其他设备,这样便可大大减少了人们设备的支出费用。
只要掏出手机,便可随时随地的侦测身边的WI-FI。
关键字:WI-FI、终端、android系统、网络账户密码、用户信息、植入木马作品简介................................................................................................................... - 1 -第一章项目开发计划. (2)1. 引言 (2)1.1 编写目的 (2)1.2 背景 (2)2. 项目概述 (2)2.1 工作内容 (2)2.3 产品 (2)2.4 测试 (3)2.5 验收标准 (3)3. 实施计划 (3)3.1进度 (3)3.2关键问题 (3)4.支持条件 (3)4.1 android系统支持 (3)4.2 硬件支持 (3)4.3 开发软件 (3)第二章需求分析说明书 (4)1.引言 (4)1.1编写目的 (4)2.任务概述 (4)2.1目标` (4)2.2对功能的规定 (4)2.3功能流程描述 (4)3.系统目标 (6)4.产品质量需求 (6)5.用户的特点 (6)6.需求规定 (6)6.1对定位精度的规定 (6)7.运行环境规定 (6)7.1设备要求 (7)7.2支持软件 (7)7.3运行环境 (7)开发环境 (7)客户机 (7)第三章概要设计 (8)1.编写目的 (8)2.运行环境 (8)3.总体设计 (8)3.1系统总图结构图 (8)3.2功能需求与程序的关系 (9)4.系统维护设计 (9)4.1系统出错处理设计出错信息及补救措施 (10)第四章详细设计说明书 (11)1编写目的 (11)2.系统结构图 (11)3.程序层次结构表 (12)3.模块功能 (13)第五章系统功能模块设计 (15)1.编写目的 (15)2.背景 (15)3.程序设计说明 (15)3.1程序描述 (15)3.2功能 (15)3.3功能实现 (16)3.4算法 (17)第六章测试分析报告 (26)1.编写目的 (26)2.测试的主要内容 (26)2.1单元测试 (26)2.2集成测试 (26)2.3确认测试 (26)2.4系统测试 (26)2.5功能测试 (26)2.6性能测试 (27)2.7界面测试 (27)3. 测试用例 (28)参考文献 (31)作品简介本软件的名称为WI-FI侦测及位置分析APP,它是一款用于查看身边WI-FI 强度和名称,帮助你了解身边WI-FI的软件。
它可以帮助你更有效的查看身边WI-FI的情况,和显示WI-FI信号强弱,让你更好更轻松的选择想要链接的WI-FI。
本软件由7个模块组成:接入点列表,可以看到你目前所连接的WI-FI,和其他检测到的WI-FI信号和信息,长按列表的某一项,可以查看详情,也可以链接,同时可以尝试破解该WI-FI密码,验证它的安全性。
侦测WI-FI,是一个辅助功能,它可以记录你走过地方的WI-FI信号最强的位置。
WI-FI地图,它可以显示你之前侦测过的所有WI-FI信号的位置,让你更明确的了解那些WI-FI的具体位置。
WI-FI雷达,可以更有效的显示WI-FI的方位。
寻找WI-FI,用于室内更精确的寻找WI-FI的方位,有动态图像显示信号强弱,也可以选择声音来辅助你寻找到WI-FI的位置。
信号强度图,以图像的方式,展示所侦测到的所有WI-FI信号,更直观的展现出来,也可以查看某一个信号强弱图,以及设置扫描间隔。
一、项目开发计划1、引言1.1 编写目的本报告的主要作用是确定各个项目模块的开发情况和主要的负责人,供各项目模块的负责人阅读,做到及时的调整,按步有序进行项目的开发,减少开发中不必要的损失。
1.2 背景如今社会人人都十分依赖WI-FI,因为不仅是手中的手机,又或者是电脑,甚至是平板电脑都需要连接WI-FI才可以进行网络服务功能。
因此人们越来越重视无线WI-FI的重要性。
我们就此问题提出一个高效、便捷、完善、安全性好的系统。
2、项目概述2.1 工作内容《移动端无线WI-FI侦测及位置分析》针对的用户是各种群体。
相应的内容有:主要包括WI-FI定位侦测、折线图、雷达图、网络拓扑结构四大功能。
能够侦测出附近隐藏及非隐藏的WI-FI。
对侦测到的WI-FI,能够进行安全性验证,例如弱口令破解,或者利用协议漏洞等实现入侵,从而探知其安全性。
3、对于已知密码的WI-FI,登陆进去,然后绘制出其当前的网络拓扑图,包括连接到该WI-FI上的所有设备的名称,MAC地址和IP地址。
4、将侦测到的WI-FI 的地理位置(取信号最强处的位置)及相关信息如MAC地址存储下来,可随时在地图上查看(通过调用百度地图API)。
2.3 产品2.3.1 程序移动端无线WI-FI侦测及位置分析,由android编程语言编写而成。
配合Sqlite数据库具体功能待写入,模块化。
2.4 测试2.4.1服务版本在需要的时候做出升级2.4.2非移交的产品该系统的测试版本以及还未完善的版本等等,均可不必交给用户2.5 验收标准有好的外观,以及该具备的功能。
用户体验感好,不会出现操作上的异常。
3、实施计划3.1进度(如表1-1所示)3.2关键问题雷达定位、经纬度的精确获取。
整个项目的模块整合。
4、支持条件4.1 android系统支持:android4.2.2以上4.2 硬件支持:电脑、android手机一台4.3 开发软件:eclipse二、需求分析说明书1、引言1.1编写目的本文档对移动端无线WI-FI侦测及位置分析系统的设计进行描述,这个文档给软件开发提供了详细需求说明,帮助软件设计人员了解功能模块的设计。
在明确的目标和功能,为编码人员对移动端无线WI-FI侦测及位置分析系统有个统一得理解。
2、任务概述2.1目标`用户使用过程中能检测周边各类无线环境的安全性从而能够放心运行各类无线应用;能够检测周边的合法、非法无线源、无线接入终端等,并进行无线安全验证以避免不必要的信息泄露;具备足够多的WI-FI热点数据库,连接无线者就可以快速定位自己的位置,而数据库拥有者也可以向连接者推送大量的增值服务。
能侦测出赛场内所有WI-FI以及其安全性,并将侦测到的WI-FI的信息及其地理位置信息显示在地图上。
需要能够通过信号强度等方式找到该WI-FI发射器的大体位置。
2.2对功能的规定用列表的方式,逐项定量和定性的叙述对软件的功能要求,说明输入什么量、经怎么样的处理、得到什么的输出,说明软件应支持的终端数的应用支持操作的用户数。
2.3功能流程描述(如表2-1所示)功能需求:本系统有WI-FI定位侦测、折线图、雷达图、网络拓扑结构图六大功能。
每项有若干项子功能。
WI-FI定位侦测(1)侦测出附近隐藏及非隐藏的WI-FI。
(2)对侦测到的WI-FI,能够进行安全性验证。
(3)能找到某个活跃WI-FI的发射源。
折线图(1)将活跃的WI-FI,每个WI-FI用一条曲线表示。
(2)图的纵轴为信号值,横轴为时间轴。
雷达图(1)以该侦测设备为中心绘制动态雷达侦测图。
(2)将侦测到的活跃WI-FI以点的形式标注在该图上。
(3)能够侦测出信号的强弱和位置的远近。
表2-1:功能流程描述表3.系统目标(1)实现需求分析阶段提出的所有功能。
(2)界面清晰明朗,使用方便,用户体验感好。
4.产品质量需求表2-1:产品质量需求表5、用户的特点用户只需要简单的操作,可以简单明了看懂一些文字及图片的说明即可,无需掌握任何专业的知识。
6、需求规定6.1对定位精度的规定软件需要对地理位置的处理及存储,所以应开启手机gps的最高定位精度,来保证软件采集数据的精准度。
由于手机定位精度的限制,手机侦测到的WI-FI地理位置可能随着定位精度而引起定位的整体偏移7、运行环境规定湖南工业职业技术学院学生毕业设计7.1设备要求设备需要为android4.0以上系统的手持设备(手机、平板),需要有WI-FI和GPS 模块7.2支持软件开发使用操作系统可以为Windows 、Linux、Mac OS。
开发及编译为eclipse。
7.3运行环境网络及硬件,4G,CPU:core i5,硬盘:500G开发环境:eclipse编译器客户机:android 4.2.2及以上系统三、概要设计1、编写目的本文档将概要描述基于Android平台WI-FI侦测及位置分析中的功能模块。
主要包括WI-FI定位侦测、折线图、雷达图、网络拓扑结构四大功能。
包括总体设计、接口设计、系统数据设计、和系统出错设计等。
该文档的读者是系统设计人员、软件开发人员、和项目评审人员。
2、运行环境(1)硬件环境:PC和android手机一台(2)软件环境:windows2003//2000/xp/7/8(3)开发环境:eclipse。
3、总体设计3.1系统总图结构图与系统功能表WI-FI侦测定位系统内容:图3-1:系统模块图表3-1:系统功能表3.2功能需求与程序的关系(如表3-2所示)表3-2:功能需求与程序关系表4.系统维护设计软件的维护主要是软件功能的维护。
对于软件功能方面的维护,由于我们采用的是模块化的设计方法,每个模块(窗口)之间相互独立性较高,这样对软件的维护带来了很大的方便,对于单独功能的修改只需修改一个窗口就行了。
而对于功能的添加,只要再添加菜单项的内容即可。
我们将根据用户的的要求和反映,定期的对软件进行维护修改。
4.1系统出错处理设计出错信息及补救措施当系统正在进行WI-FI数据读写操作时,发生系统软硬件或网络故障。