• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > [android] 手机卫士手机实现短信指令获取位置,android卫士

[android] 手机卫士手机实现短信指令获取位置,android卫士

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android360卫士,android360手机卫士,android手机安全卫士,android手机卫士,android360安全卫士等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

[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)){
                


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android菜单(动画菜单、360波纹菜单),android波纹
  • Android 手机卫士17--缓存清理,android17--
  • Android 手机卫士13--进程设置,android13--
  • Android 手机卫士10--应用管理器,android10--
  • Android 手机卫士8--删除通话记录,android8--
  • Android 手机卫士--导航界面4的业务逻辑,android卫士
  • Android 手机卫士--平移动画实现,android卫士
  • Android 手机卫士--获取联系人信息并显示与回显,android回显
  • Android 手机卫士--参照文档编写选择器,android选择器
  • Android 手机卫士--导航界面2,android卫士

相关文章

  • 2017-05-26在Android中用Kotlin的Anko运行后台任务(KAD 09),kotlinanko
  • 2017-05-26自定义控件添加自定义属性问题,控件添加自定义属性
  • 2017-05-26关于jni编译32位、64位动态库(Android.mk和Application.mk文件),jniapplication.mk
  • 2017-05-222.4.4 Adapter基础讲解
  • 2017-05-222.3.8 SeekBar(拖动条)
  • 2017-05-26android:QQ多种侧滑菜单的实现
  • 2017-05-26Android Studio安装配置、环境搭建详细步骤及基本使用,android安装配置
  • 2017-05-26BaseAdapter获取View之三重境界,baseadapterview
  • 2017-05-26android自定义activity,androidactivity
  • 2017-05-26算法导论--平摊分析之聚集分析,算法导论--平摊

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • android:TextView实现文字走马灯效果(欺骗系统获取持久的焦点)
    • 简单的数据类型转换的工具类,数据类型工具类
    • Android开发学习—— shape标签的使用,androidshape
    • Xamarin.Android 的照相機使用,xamarin.android
    • Android蓝牙技术Bluetooth初体验
    • Bottom Sheet
    • Atitit.反编译apk android源码以及防止反编译apk,atititapk
    • Google Play发布App中遇到"多个APK:版本1未提供给任何设备配置使用。"问题的解决方法,appapk
    • ionic打包项目,运行时报错A problem occurred configuring root project 'android'。。。,ionicconfiguring
    • 硅谷商城第二版5--个人中心模块,硅谷商城第二版5--

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有