推荐阅读:

获取位置

新建一个service的包

新建一个GPSService类继承系统的Service类

清单文件中注册一下

重写onCreate()方法,服务创建的时候回调

重写onDestroy()方法,服务销毁的时候回调

把上一节的代码拿到这个地方来

得到用户移动后的最后一次的位置,保存到SP中

转换标准坐标为火星坐标,数据库文件放到assets目录下,把ModifyOffset.java放在service包下面

获取ModifyOffset对象,通过ModifyOffset.getInstance()方法,参数:输入流;把资产目录下的文件转成输入流,使用getAssets().open(“文件名”)得到InputStream对象,

调用ModifyOffset对象的s2c()方法,把标准的转成中国的得到新的PointDouble对象,参数:PointDouble对象,x , y

获取到经度 PonitDouble对象的y

获取到纬度 PonitDouble对象的x

把位置数据保存到SP中

接收指令发送位置短信

启动服务,在接收短信的地方,获取到Intent对象,调用Context对象的startService()方法

获取到SP中保存的位置信息

发送短信,SmsManager.getDefault().sendTextMessage()方法,发送短信给安全号码,参数:sendTextMessage(目标手机, null(来源手机不支持), text, sentIntent, deliveryIntent)后两个参数,延迟报告和送达报告,不关心填null

需要这个权限 android.permission.SEND_SMS

判断一下内容是否为空,如果为空发送短信内容是正在获取,手动让坐标变化一下,才能正在得到

GPSService.java

package com.qingguow.mobilesafe.service;

import android.app.Service;

import android.content.Intent;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.location.Criteria;

import android.location.Location;

import android.location.LocationListener;

import android.location.LocationManager;

import android.os.Bundle;

import android.os.IBinder;

public class GPSService extends Service {

private LocationManager lm;

private LocationListener listener;

private SharedPreferences sp;

@Override

public IBinder onBind(Intent arg0) {

return null;

}

// 服务创建

@Override

public void onCreate() {

super.onCreate();

sp=getSharedPreferences("config", MODE_PRIVATE);

// 获取位置管理器

lm = (LocationManager) getSystemService(LOCATION_SERVICE);

listener = new MyLocationListener();

Criteria criteria = new Criteria();

criteria.setAccuracy(Criteria.ACCURACY_FINE);

String provider = lm.getBestProvider(criteria, true);

lm.requestLocationUpdates(provider, 0, 0, listener);

}

// 服务销毁

@Override

public void onDestroy() {

super.onDestroy();

lm.removeUpdates(listener);

listener=null;

}

private class MyLocationListener implements LocationListener {

@Override

public void onLocationChanged(Location location) {

// 获取经度

String longitude = "longitude:" + location.getLongitude();

String latitude = "latitude:" + location.getLatitude();

String acc = "accuracy:" + location.getAccuracy();

// 转换火星坐标

try {

ModifyOffset offset = ModifyOffset.getInstance(getAssets()

.open("axisoffset.dat"));

PointDouble pinit = offset.s2c(new PointDouble(location

.getLongitude(), location.getLatitude()));

longitude = "longitude:" + pinit.x;

latitude = "latitude:" + pinit.y;

} catch (Exception e) {

e.printStackTrace();

}

//保存数据

Editor editor=sp.edit();

editor.putString("lastlocation", longitude+latitude+acc);

editor.commit();

}

@Override

public void onStatusChanged(String provider, int status, Bundle extras) {

}

@Override

public void onProviderEnabled(String provider) {

}

@Override

public void onProviderDisabled(String provider) {

}

}

}

SmsReceiver.java

package com.qingguow.mobilesafe.receiver;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.media.MediaPlayer;

import android.telephony.SmsManager;

import android.telephony.SmsMessage;

import android.text.TextUtils;

import com.qingguow.mobilesafe.R;

import com.qingguow.mobilesafe.service.GPSService;

public class SmsReceiver extends BroadcastReceiver {

private SharedPreferences sp;

@Override

public void onReceive(Context context, Intent intent) {

sp=context.getSharedPreferences("config", Context.MODE_PRIVATE);

//获取短信内容

Object[] objs=(Object[]) intent.getExtras().get("pdus");

for(Object obj:objs){

SmsMessage sms=SmsMessage.createFromPdu((byte[])obj);

String body=sms.getMessageBody();

String sender=sms.getOriginatingAddress();

String secSender=sp.getString("secphone", "");

//判断是安全号码的短信

if(secSender.equals(sender)){

switch (body) {

case "#*alarm*#"://发送报警音乐

//Toast.makeText(context, "播放报警音乐", 1).show();

MediaPlayer mp=MediaPlayer.create(context, R.raw.alarm);

mp.start();

abortBroadcast();

break;

case "#*location*#"://得到位置信息

Intent intent1=new Intent(context,GPSService.class);

context.startService(intent1);

String lastLocation= sp.getString("lastlocation", "");

//发送短信

if(TextUtils.isEmpty(lastLocation)){

SmsManager.getDefault().sendTextMessage(sender, null,"getting location", null, null);

}else{

SmsManager.getDefault().sendTextMessage(sender, null,lastLocation, null, null);

}

System.out.println("获取位置消息"+lastLocation);

abortBroadcast();

break;

default:

break;

}

}

}

}

}

以上所述是小编给大家介绍的Android手机卫士之手机实现短信指令获取位置的相关内容,希望对大家有所帮助!

android 短信位置,浅析Android手机卫士之手机实现短信指令获取位置相关推荐

  1. 手机卫士04_ 手机定位_超级管理员_数据库

    手机卫士04_ 手机定位_超级管理员_数据库 1.1 定位功能简介: 常见的定位方式: ①网络定位:(IP地址),拨号上网一般是动态分配,如果网吧公司,就是静态分配的. 比较有名的数据库:纯真Ip数据 ...

  2. 【每日新闻】手机安全日益重要,360手机卫士构建手机安全生态链 | 工信部:未来电子信息行业发展将聚焦5G技术

    每一个企业级的人  都置顶了 中国软件网 中国软件网  为你带来最新鲜的行业干货 小编点评 我们希望邀请更多的生态伙伴 共同探讨 共同行动 2018年4月25日 北京站,不见不散! 趋势洞察 生态视角 ...

  3. android手机卫士,安卓手机卫士

    权限列表[安卓手机卫士] ● (基于网络的)粗略位置 访问粗略的位置源(例如蜂窝网络数据库)以确定手机的大体位置(如果可以).恶意应用程序可借此确定您所处的大体位置. ● 获取定位 允许应用通过网络或 ...

  4. android文件管理器项目,浅析Android文件管理器(项目一)

    文件管理器是管理文件的软件,帮助用户处理日常工作,管理储存在本地和网络中的文件.所有文件管理器都提供了基本的操作如创建.打开.查看.编辑.移动和删除文件.许多Android文件管理器还提供了额外功能, ...

  5. android文件管理器listview,浅析Android文件管理器(项目一)

    文件管理器是管理文件的软件,帮助用户处理日常工作,管理储存在本地和网络中的文件.所有文件管理器都提供了基本的操作如创建.打开.查看.编辑.移动和删除文件.许多Android文件管理器还提供了额外功能, ...

  6. 手机卫士项目——手机防盗GPS追踪技术

    1.个人感想由于随着手机不停的位置移动,手机防盗这款功能  是假设手机在丢失的情况下  要在后台偷偷的运行所以要用到Service服务(四大组件之一) package com.android.mobi ...

  7. 手机卫士项目——手机防盗时候——选择手机联系人

    一.这个是我个人从手机卫士抽取出来的一个demo获取手机中的联系人由于水平有限,不废话了直接上代码! 1.布局文件: <LinearLayout xmlns:android="http ...

  8. 360 android手机备份通讯录,360手机卫士怎样备份手机通讯录 备份手机通讯录图文教程...

    软件安装:手机应用宝 随着科技的发展,手机在我们的生活中扮演了很重要的角色,手机在便利我们生活的同时,也会对我们造成很重要的影响.手机已经成为了我们的必需品,不仅是通讯工具,而且很大程度上都是娱乐功能 ...

  9. 百度手机卫士联手央视3·15大数据分析 女性、老年人易遭电信诈骗

    前天是3·15消费者权益日,央视财经频道<3·15在行动>节目关注了日益猖獗的电信诈骗问题.节目中,百度手机卫士向消费者揭露了十大类典型的诈骗短信类型,并对伪基站骗术进行了揭露. 央视报道 ...

最新文章

  1. vscode-git中的U,M和D文件标记含义
  2. c++用一级运算比较大小_1.1.2 python基本数据类型与运算符
  3. Flink 还是 Spark?阿里技术专家一语道破真相!
  4. gwt格式_GWT –利弊
  5. 快准狠!Intel论文揭示自家车牌识别算法:LPRNet
  6. python决策树分类 导入数据集_BPNN、决策树、KNN、SVM分类鸢尾花数据集Python实现...
  7. java新手笔记16 面积
  8. 2001年李彦宏DoNews三篇搜索引擎Blog
  9. Drain:在线实时日志解析方法
  10. 49、建筑外墙上防火墙的设置
  11. 语音信号的梅尔频率倒谱系数(MFCC)的原理讲解及python实现
  12. 我的python3.0 + RIDE搭建之路 ---全是血泪史
  13. RGBD相机的标定和图像配准
  14. wheel文件安装以及换源安装
  15. 点到直线(超平面)的距离公式
  16. php中如何使用KindEditor编辑器
  17. 大师告诉你,学习数学有什么用
  18. 信贷风险定价怎么做?
  19. 一般域名到期后保留多久?到期域名怎么处理?
  20. 通过GitHub Actions给微信公众测试号和钉钉群定时推送消息(Python)

热门文章

  1. JavaScript学习(八十三)—JavaScript书写位置、注释、以及输入输出语句
  2. 支付宝基金收益灰色是什么意思?
  3. 产品销售的过程中,价值是不断被定义和挖掘的
  4. 做自媒体花式撸收益?
  5. 现在很多人都在网上找富业
  6. 二十六岁,裸辞之后,我步入了“三无”行列
  7. 如何看待没有学历的程序员?
  8. 你有没有遇到过“世外高人”,可以说说吗?
  9. 了解SQL Server事务日志备份和完整备份的日志序列号
  10. sql crud_SQL Server中的CRUD操作