获取手机经纬度有gps , network  , 基站 三种方式,我们可以根据定位的条件,获取一个最好的定位方式。然后将获取到经纬度信息发送到指定的手机号码中。

/*

 * 单态只允许存在一个实例.

 * 获取手机的gps信息 

 */ 

public class GPSInfoService { 

    private Context context; 

    private LocationManager manager; 

    SharedPreferences sp ; 

    //私有化构造方法  

    private  GPSInfoService(Context context){    

        this.context= context; 

        manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 

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

    } 

    private static GPSInfoService mGPSService; 

    public synchronized static GPSInfoService getInstance(Context context){ 

        if(mGPSService==null) 

            mGPSService = new GPSInfoService(context); 

        return mGPSService; 

    } 

    /*

     *  当前你的手机 所支持的定位方式获取出来 

     *  有多种定位方式gps network ,基站, passive

     *  可以根据定位的条件,获取 一个最好的定位方式 

     */ 

    public void registerLocationUpdates(){ 

        Criteria criteria = new Criteria(); 

        // 设置定位的精度  

        criteria.setAccuracy(Criteria.ACCURACY_COARSE); //获取大体的位置 

        criteria.setAltitudeRequired(false); // 海拔信息 

        criteria.setCostAllowed(true); //允许产生费用 

        criteria.setPowerRequirement(Criteria.POWER_LOW); //低功耗 

        //获取一个最符合查询条件的位置提供者  

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

        // 位置改变就会调用Linster的监听器 获取经度纬度 

        manager.requestLocationUpdates(provider, 60000, 0, getLinster()); 

    } 

    public void cancleLocationUpdates(){ 

        manager.removeUpdates(getLinster()); 

    } 

    private static MyGPSLinster myGPSLinser; 

    private MyGPSLinster getLinster(){ 

        if(myGPSLinser==null) 

            myGPSLinser = new MyGPSLinster(); 

        return myGPSLinser; 

    } 

    private class MyGPSLinster implements LocationListener{ 

        // 用户位置改变的时候 的回调方法  

        public void onLocationChanged(Location location) { 

            //获取到用户的纬度  

            double latitude= location.getLatitude(); 

            //获取到用户的经度 

            double longitude = location.getLongitude(); 

            //进行封装写入到文件中 

            String locationstr = "jing du "+ longitude + " weidu  :"+latitude; 

            Editor  editor =  sp.edit(); 

            editor.putString("lastlocation", locationstr); 

            editor.commit(); 

        } 

        // 状态改变  

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

            // TODO Auto-generated method stub 

        } 

        //gps ,打开 

        public void onProviderEnabled(String provider) { 

            // TODO Auto-generated method stub 

        } 

        //关闭 

        public void onProviderDisabled(String provider) { 

            // TODO Auto-generated method stub 

        } 

    } 

    /**

     * 获取手机的最后一次位置 

     * @return

     */ 

    public String getLastPosition(){ 

        return sp.getString("lastlocation", ""); 

    } 

} 

获取短信的经纬度并将获取到的经纬度发送到指定的号码上:

//获取当前手机的经纬度. 

GPSInfoService.getInstance(context).registerLocationUpdates(); 

//把经纬度的信息发送到安全号码,获取到短信发送器,将短信发送到指定的号码 

SmsManager smsManager = SmsManager.getDefault(); 

smsManager.sendTextMessage("15287978798", null, GPSInfoService.getInstance(context).getLastPosition() , null, null);   

手机防盗之获取手机经纬度(Android)的更多相关文章

  1. iOS 整理笔记 获取手机信息(UIDevice、NSBundle、NSLocale)

    /*    iOS的APP的应用开发的过程中,有时为了bug跟踪或者获取用反馈的需要自动收集用户设备.系统信息.应用信息等等,这些信息方便开发者诊断问题,当然这些信息是用户的非隐私信息,是通过开发ap ...

  2. PHP获取手机相关信息

    该PHP操作类实现获取手机号手机头信息,取UA,取得手机类型,判断是否是opera,判断是否是m3gate,取得HA,取得手机IP 代码如下: <?php /** * @desc 手机操作类 获 ...

  3. vue 项目,获取手机验证码和图形验证码(iviewUI框架)

    1.编辑获取验证码模块 <Form ref="phoneFormItem" :model="phoneFormItem" :label-width=&qu ...

  4. Android项目实战_手机安全卫士手机防盗界面

    #安全卫士手机防盗# ###1.Activity的任务栈 1.类似一个木桶,每层只能放一个木块,我们放入木块和取出木块的时候只能从最上面开始操作 ###2.Android中的坐标系![](http:/ ...

  5. Android 获取手机Mac地址,手机名称

    /** * 获取手机mac地址<br/> * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取 ...

  6. android获取手机信息大全

    IMEI号,IESI号,手机型号: private void getInfo() { TelephonyManager mTm = (TelephonyManager) getSystemServic ...

  7. Android获取手机制作商,系统版本等

    在开发中 我们有时候会需要获取当前手机的系统版本来进行判断,或者需要获取一些当前手机的硬件信息. android.os.Build类中.包括了这样的一些信息.我们可以直接调用 而不需要添加任何的权限和 ...

  8. Android获取手机设备识别码(IMEI)和手机号码

    最近看了下获取手机设备ID和手机信息以及SIM的信息例子,主要还是借鉴别人的,现在自己写一下,算是巩固加深了,也希望能给大家一个参考 必要的条件还是一部真机,SIM卡或者UIM卡. 首先,在Andro ...

  9. 【风马一族_Android】Android 从命令行界面获取手机信息

    Android 从命令行界面获取手机信息 1: cmd 打开命令行界面 2:adb devices   获取与电脑相连的设备,例如:模拟器.真机(手机) (右击“标记”,选择设备名称,点击“Ctrl+ ...

随机推荐

  1. vscode - 设置中文语言

    记得上次安装的时候,自动提示安装本地语言包,现在的版本貌似不会了吧. 1.先安装扩展,按键CTRL+SHIFT+P 输入 ext install ,最后输入:language,大概就可以找到简体中文包 ...

  2. iOS 推断设备为iPhone还是iPad

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { self.viewControlle ...

  3. 解决运行Maven是报错:No goals have been specified for this build

    pom.xml文件<build>标签后面加上<defaultGoal>compile</defaultGoal>即可

  4. 一个简单的knockout.js 和easyui的绑定

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Basi ...

  5. 每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识

    2013-02-05 14:18 48人阅读 评论(0) 收藏 举报 关键字:     Unicode, Character Set, 字符集, UTF-8, ANSI, ASCII, UTF-7   ...

  6. 执行存储过程报错——ora-01031:权限不足

    1. 执行DDL报错 在oracle存储过程中,默认是可以直接执行DML和DQL的,但是执行CREATE这种的DDL则需要借助EXECUTE IMMEDIATE ···了,如下备份表语句 --抄表表备 ...

  7. Nginx的HTTPS 301重定向到另一个TLD(托管在同一服务器上)没有显示出SSL警告

    我自己 example.com, .com.au, .net, .net.au, ... (8 in total). 我想所有的这些顶级域名以301的域名重定向到安全.COM域 https://www ...

  8. 教你动手做一个 iOS 越狱 app

    前言 俗话说得好, 万事开头难. 仅仅是上图一个如此简单地不能再简单的小app, 其实都不算是app, 只是注入了一段代码进系统中, 等到特定的函数方法调用的时候就会被我们hook掉, 执行我们写的代 ...

  9. 【LeetCode】75. Sort Colors (3 solutions)

    Sort Colors Given an array with n objects colored red, white or blue, sort them so that objects of t ...

  10. postgresql命令行[转]

    postgresql命令行 原文链接 PostgreSQL 8.1 中文文档 连接数据库, 默认的用户和数据库是postgrespsql -U user -d dbname \c dbname 切换数 ...