浅析Android手机卫士之手机实现短信指令获取位置_Android

推荐阅读:

浅析Android手机卫士sim卡绑定

深入浅析Android手机卫士保存密码时进行md5加密

详解Android 手机卫士设置向导页面

浅析Android手机卫士关闭自动更新

浅析Android手机卫士自定义控件的属性

浅析Android手机卫士读取联系人

浅析Android手机卫士接收短信指令执行相应操作

浅析Android手机卫士手机定位的原理

获取位置

新建一个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短信指令
百度高级搜索指令浅析、netty实现原理浅析、10010短信指令、短信校准指令、at指令发送短信,以便于您获取更多的相关知识。

时间: 2024-11-03 20:38:41

浅析Android手机卫士之手机实现短信指令获取位置_Android的相关文章

男子手机疯狂群发窃私短信给好友百度手机卫士揭开真相

家住武汉的肖先生,昨日早上7点左右陆陆续续收到朋友们给他发的短信,问他发给大家的短信是干什么的?这时他才知道,自己的三星手机中了病毒,疯狂给自己手机里的联系人狂发病毒短信.为了避免自己的亲朋好友同事们上当受骗,他立即给自己联系人800个好友进行了短信和电话确认,告知他们不要上当,不要点击自己之前发的病毒短信里面的链接,以免手机中毒,和自己一样变成病毒传播的载体之一.据肖先生自己介绍,昨天一天都在做解释工作,好好的七夕节就这么泡汤了.这到底是怎么回事?"XXshenqi.apk"病毒全国

怎么用360手机卫士备份手机通讯录?

  怎么用360手机卫士备份手机通讯录? 1.点击打开360手机卫士,在第二页有个通讯录备份,点击打开 2.这时我们在通讯录备份页面可以看到有备份,恢复等功能,我们先来备份,点击备份 3.这时需要我们等了360手机卫士,输入你的360账号和密码,然后点击立即登录 4.登录成功,接下来就是选择你要备份的内容了,你可以根据你的需求备份,当然也可以全部备份,流量很小的 5.备份成功,点击确认就好了.

我国手机用户增速远大于短信业务

今天凌晨工信部发布的统计数据显示,2012年我国移动短信业务用户达到76481.5万户,渗透率为68.8%.这比手机网民4.2亿的数字要多得多,说明会发短信的人仍然远远多于会用手机上网的人,也说明有2亿多手机用户不发短信.另外,据工信部最新公布统计数据显示,2012年,全国移动短信发送量达到8973.1亿条,同比增长仅2.1%,增幅为四年最低.但与此同时,2012年我国手机普及率达到82.6部/百人,比上年末提高9部/百人,手机用户增幅约为11%.两项数据对比可以发现,我国手机用户增速远大于短信

手机用户超过九亿 短信营销省钱给力

据工业和信息化部5月24日发布的通信业运行状况显示,今年1至4月全国http://www.aliyun.com/zixun/aggregation/28200.html">移动电话用户累计净增4138.6万户,总数达到90038.9万户.手机跃然成为了当今世上,资讯传播最广泛.最直接的媒介.不管用户是在进行语音通话.3G视频通讯,还是在无线移动网上冲浪,或者透过短信传达各种各样信息,无疑,生活中海量资讯都在全球亿万部手机之间传递着. 用户也许会在语音或视频通话后数小时就忘记了当时的内容,也

骗子破解手机SIM卡服务密码短信诈骗钱财

骗子以郑先生手机号码发出的短信 本报中山讯 记者潘林摄影报道:手机一直放在口袋里,密码却被盗走,手机也突然没了信号.可亲朋好友却接连收到他手机号码发出的短信,要求充值---中山市民郑先生向羊城晚报记者讲述了自己手机密码离奇被盗后引发的骗局. 今年58岁的郑先生是位建筑承包商.他告诉记者,本月20日下午4时10分前后,他正在朋友处聊天,朋友突然接到电话询问:"郑老板出了什么事,让大家帮忙充话费,手机也打不通."郑先生很诧异,一摸口袋手机仍在,掏出细看却是没有信号.他们想起媒体经常报道的诈

网秦称手机病毒伪装团购短信传播

10月13日下午消息,网秦手机安全中心截获了一组名为"变装恶灵"(PH. Local MMS)的恶性手机病毒.网秦称病毒以10086之名制造虚假彩信,对用户做成严重误导. 据介绍,病毒侵入用户手机后,会在本地生成一条由10086发送的"团购"彩信,内容大致为:"--拨此号码立刻免费赠送50元XXX团购代金券--"."感谢您对中国移动的支持,立即拨打电话,免费获得XX元礼金"等.病毒以10086之名制造虚假彩信,对用户做成严重误

Android实现短信验证码获取自动填写功能(详细版)_Android

现在的应用在注册登录或者修改密码中都用到了短信验证码,那在android中是如何实现获取短信验证码并自动填写的呢? 首先,需要要在manifest中注册接收和读取短信的权限:  <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ

Android黑科技之读取用户短信+修改系统短信数据库_Android

安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题.这篇博客就秀一波"黑科技". 读取用户短信 Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证码,一些app马上就能自动获取并填上验证码,省去我们手动填写验证码.原理就是通过Android的ContentProvider组件间接访问系统的短信数据库,获取所有短信内容.下面来演示一下.         布局很简单,如下:   代码如下: public class MainActivi

Android创建简单发送和接收短信应用

本文实例为大家分享了Android创建发送和接收短信应用的简单实现过程,供大家参考,具体内容如下 一.接收短信 项目的结构如下:一个简单的接收和发送短信的功能 1.定义一个接收短信的广播:当手机接收到一条短信的时候,系统会发出一条值为android.provider.Telephony.SMS_RECEIVED 的广播,这条广播里携带着与短信相关的所有数据. // 接收短信的广播 class MessageReceiver extends BroadcastReceiver { @Overrid