永发信息网

如何查看android软件的行为

答案:2  悬赏:60  手机版
解决时间 2021-03-06 23:19
如何查看android软件的行为
最佳答案
引言
  在一个家庭中,老、幼两类群体的安全是家庭成员比较担心的,老人外出购物走丢,初中生上课期间去网吧等事件频繁发生。针对此类安全问题,本文基于Android设计出位置实时监控系统。由于在Android系统手机上开发,可提高便捷性和普及程度,降低成本。
  1 系统总体设计
  本系统在整体上可以分成两大部分,即被监控端和监控端。被监控端和监控端都是在基于Android操作系统的智能手机上开发实现。该系统内数据传输可采用WiFi、GPRS或者3G网络等通信模式,定位采用的GPS卫星定位的方式。然后利用位置分析数据库进行位置数据分析,在手机上载入电子地图,直观地显示被监控端的位置(若出现在非正常区域则进行提醒监控端)。系统总体的结构图如图1所示。



  Android 系统的软件可以在 Linux、Windows XP和 Windows 7等操作系统上基于Eclipse进行开发。本文采用在 Windows 7 上进行开发。表 1为开发所需的软件及版本,下载并安装如下软件。
  2 被监控端设计
  2.1 硬件实现
  被监控端Android手机实现的功能包括实现GPS定位信息显示和定位时间显示,通过定位频率设置,实时将被监控端GPS信息发送到监控端,便于被监控。监控端系统功能实现图如图2所示。


  2.2 软件设计
  根据MVC的设计模式,将被监控端手机APP的设计分为三部分:UI界面、逻辑处理和数据交互。被监控端手机APP主要实现以下的功能:
  ①系统登录。该功能是利用Android系统的软件,通过输入正确的合法用户信息,进入功能界面。
  ②经纬度信息显示。通过手机内嵌的GPS模块,准确获得被监控者的GPS定位信息。
  ③设置。该功能主要是设置监控端的信息。一是设定监控端的指定号码;二是设置频率,即多久被监控端向监控端发送一次GPS信息。
  ④发送。实现位置信息的发送。
  ⑤退出系统。实现中断该软件的使用,退出应用。
  被监控端系统功能模块图如图3所示。


  2.3 程序实现
  一是定位功能的实现。充分利用Android智能手机内置GPS定位模块,基于Eclipse开发平台通过程序的调用,实现定位功能,手机运行结果如图4所示。其实现代码如下:



  
  private void setLocation(Location location){
  if (location != null) {
  String latitudeStr = Double.toString(location.getLatitude());//经度
  String longitudeStr = Double.toString(location.getLongitude());//纬度
  String altitudeStr = Double.toString(location.getAltitude());//海拔
  // 获取当前时间
  SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.CHINA);
  String dateStr = sDateFormat.format(new java.util.Date());
  gpsTime.setText(dateStr);
  if (latitudeStr != null && !latitudeStr.equals("")) {
  latitude.setText(latitudeStr);
  }
  if (longitudeStr != null && !longitudeStr.equals("")) {
  longitude.setText(longitudeStr);
  }
  if (altitudeStr != null && !altitudeStr.equals("")) {
  altitude.setText(altitudeStr);
  }
  } else {
  Log.v("location", "location为空");
  }
  }
  二是经纬度信息发送功能的实现。根据事先设置好的监控端手机号码,按照发送频率(时间间隔),将经纬度发送到监控端。其实现代码如下:
  
  private void sendSMS(String smsContent){
  //获取短信管理器
  SmsManager smsManager = SmsManager.getDefault();
  //拆分短信内容
  List divideContents = smsManager.divideMessage(smsContent);
  if (curPhoneNum == null || curPhoneNum.equals("")) {
  new AlertDialog.Builder(MainActivity.this).setTitle("警告").setMessage("您还未设置目标电话号码").create().show();
  return;
  }
  //发送短信
  for (String text : divideContents) {
  smsManager.sendTextMessage(curPhoneNum, null, text, null, null);
  }
  }
  被监控端软件设置监控端手机号码和发送频率的的界面如图5所示。


  3 监控端系统设计
  3.1 硬件实现
  本部分的硬件只需要一部Android系机。该手机实现的功能包括接收被监控端发送过来的经纬度信息,通过应用软件处理这些信息,再加载百度地图,即可实时显示被监控端的直观位置信息。被监控端系统功能实现图如图6所示。


  3.2 软件设计
  使用百度地图定位必须注册GPS和网络使用权限。定位SDK采用GPS、基站、wifi信号进行定位。当应用程序向定位SDK发起定位请求时,定位SDK会根据应用的定位因素(GPS、基站、wifi信号)的实际情况(如是否开启GPS、是否连接网络、是否有信号等)来生成相应定位依据进行定位。
  本部分软件实现功能过程为:接收被监控端发送过来的GPS信息,通过判断处理加载百度地图,然后进行地图上显示。具体软件功能实现流程图如图7所示。


  3.3 程序实现
  一是接收发送过来的经纬度信息。本设计为直观显示经纬度信息,在加载地图的同时,显示在“短信内容:”部分。其接收功能实现代码如下:
  
  private final class SmsObserver extends ContentObserver {
  public SmsObserver(Handler handler) {
  super(handler);
  }
  public void onChange(boolean selfChange) {
  ContentResolver resolver = getContentResolver();
  //查到发出的短信
  Uri uri = Uri.parse("content://sms/inbox");
  Cursor cursor = resolver.query(uri, new String[] { "address", "body" }, null, null, "_id desc limit 1");
  if (cursor.moveToNext()) {
  String address = cursor.getString(0);
  if (address.equals("此处为被监控对象的手机号码")) {
  String body = cursor.getString(1);
  smsContent.setText(body);
  SearchButtonProcess(body);
  }
  }
  }
  二是实现电子地图上的位置显示。仅仅有经纬度信息,监控者无法直观地了解被监控对象的方位。所以在监控端软件上,加载百度地图实现被监控对象的实时监控,运行结果如图8所示。其实现代码如下:
  
  private void SearchButtonProcess(String smsContent) {
  try {
  // 逗号分隔过滤得到经纬度字符串
  String[] point = smsContent.split(",");
  // 获取到的字符串需要转化成long,然后long值需要乘1e6后转化为int
  String latitudeStr = point[0];
  String longitudeStr = point[1];
  GeoPoint ptCenter = new GeoPoint((int)(Float.valueOf(latitudeStr)*1e6),
  (int)(Float.valueOf(longitudeStr)*1e6));
  // 反Geo搜索
  mSearch.reverseGeocode(ptCenter);
  } catch (Throwable e) {
  Toast.makeText(MainActivity.this, "SearchButtonProcess Error", Toast.LENGTH_LONG).show();
  }
  4 系统测试结果
  如果被监控端和监控端都采用Android手机平台,可以充分利用Android提供的丰富的接口,使系统具有更好的扩展性和实用性。该系统进一步改进还可以实现拍照、截图、标注和查看轨迹等功能。
  5 结束语
  该系统结构简单、功能明确,软件界面方便美观,设计完成后该系统在自己家庭中进行试用。经过实际生活中的运用证明,该系统可对家中的老人或者孩子进行位置的实时监控,并根据其位置信息家庭成员可以判断是否正常,及时打电话确保安全。此外在本系统的设计基础上,添加LED的显示模块也可以应用到城市公交当中去,为乘客向导系统(PIS,Passenger Information System)的建立提供了一些方法和思路。还可以通过司机的Android操作系统手机,实现远程运输车辆的全程监控,极大地降低成本。
全部回答
后台查看啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我家兔兔据说是猫猫兔和垂耳兔的交配品种,平
问道飞行法宝叫什么名字
新装的电脑回到家显示器显示DSUB无信号怎么回
【尊敬老师的作文】关于尊敬老师的作文含有尊
哈高科营养食品有限公司我想知道这个在什么地
小学班主任工作计划
新买的像管家、礼仪手套一样的布做的白色手套
北魏高宗的儿子
tokyo hot n601是谁
佛山办理中信信用卡怎么办,到哪里办,有没有
雨说 诗歌运用第一人称的手法,以雨自述的口气
副路由器与主路由器桥接后怎么进入副路由器的
教育彩色印刷复印社在什么地方啊,我要过去处
给二级管做绝缘电阻测试时有哪些潜在的风险会
门人清客是什么
推荐资讯
雷瓦品牌怎么样?
江苏常熟离苏州多远?
荆州区荆州新北门旅社地址在什么地方,想今天
从虎丘去观前街坐几路公交可以直接到达
信用卡丢失后申请补办需要多久才能拿到新卡
粤语冇 怎么读,还有,问句的吗怎么表达?比
二十几岁的女生适合买什么牌子的衣服?
有个故事讲犹太兄弟两找人帮忙的事
手机充一晚上电,对手机伤害大吗?
2014款别克君威1.6t空调系统怎么用
浙江文景商贸有限公司这个地址在什么地方,我
马自达CX-5 和大众途观 比较那和车更好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?