如何查看android软件的行为
答案:2 悬赏:60 手机版
解决时间 2021-03-06 23:19
- 提问者网友:呐年旧曙光
- 2021-03-06 04:41
如何查看android软件的行为
最佳答案
- 五星知识达人网友:孤独入客枕
- 2021-03-06 06:17
引言
在一个家庭中,老、幼两类群体的安全是家庭成员比较担心的,老人外出购物走丢,初中生上课期间去网吧等事件频繁发生。针对此类安全问题,本文基于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操作系统手机,实现远程运输车辆的全程监控,极大地降低成本。
在一个家庭中,老、幼两类群体的安全是家庭成员比较担心的,老人外出购物走丢,初中生上课期间去网吧等事件频繁发生。针对此类安全问题,本文基于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操作系统手机,实现远程运输车辆的全程监控,极大地降低成本。
全部回答
- 1楼网友:蕴藏春秋
- 2021-03-06 07:49
后台查看啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯