Android开发之LocationManager和定位

代码:

 1 /*
 2  * 获取当前的位置,并通过短信发送位置到指定号码
 3  */
 4 public class LocationService extends Service {
 5
 6     private LocationManager lm;
 7     private MyLocationListener listener;
 8
 9     @Override
10     public IBinder onBind(Intent intent) {
11         return null;
12     }
13
14     @Override
15     public void onCreate() {
16         super.onCreate();
17
18         lm = (LocationManager) getSystemService(LOCATION_SERVICE);
19         listener = new MyLocationListener();
20         Criteria criteria = new Criteria();
21         criteria.setCostAllowed(true); // 是否允许使用付费
22         criteria.setAccuracy(Criteria.ACCURACY_FINE); // 获取位置的精度
23         String provider = lm.getBestProvider(criteria, true);
24         lm.requestLocationUpdates(provider, 0, 0, listener);
25     }
26
27     class MyLocationListener implements LocationListener {
28         // 位置改变时获取经纬度
29         @Override
30         public void onLocationChanged(Location location) {
31             String j = "jingdu:" + location.getLongitude();
32             String w = "weidu:" + location.getLatitude();
33             SharedPreferences mPref = getSharedPreferences("config",
34                     MODE_PRIVATE);
35             mPref.edit().putString("location", j + ";" + w).commit();
36             String savedSafeNumber = mPref.getString("safeNumber", "");
37
38             double[] locationDouble=LocationUtils.standardToChina(location.getLongitude(), location.getLatitude());
39             SmsManager.getDefault().sendTextMessage(savedSafeNumber, null,
40                     "Phone‘s location:" + locationDouble[0] + ";" + locationDouble[1], null, null); // 把回复的短信内容由中文修改为英文,中文在模拟器上显示为乱码
41             stopSelf(); // 获取到经纬度以后,停止该service
42         }
43
44         // 状态改变时
45         @Override
46         public void onStatusChanged(String provider, int status, Bundle extras) {
47
48         }
49
50         // 提供者可以使用时
51         @Override
52         public void onProviderEnabled(String provider) {
53
54         }
55
56         // 提供者不可以使用时
57         @Override
58         public void onProviderDisabled(String provider) {
59
60         }
61
62     }
63
64     @Override
65     public void onDestroy() {
66         super.onDestroy();
67         lm.removeUpdates(listener); // 停止所有的定位服务
68     }
69
70 }
时间: 2024-08-28 21:20:25

Android开发之LocationManager和定位的相关文章

Android开发之SQLite优化

本文原地址为:http://blog.csdn.net/horkychen/article/details/18892223 关于SQLite的优化,首先是能用SQL语句批次处理的,就不要单笔操作,Cursor就更是能不用就不用.比如成批的DELETE/UPDATE,将条件组装到SQL语句,会比使用CURSOR一条条的查再删效率要高很多(若干年前就曾使用存储过程代替单笔操作,将一次批量计算时间从一天缩到了数分钟以内,参考).其次是对操作的优化:对于INSERT/UPDATE操作较多时使用事务,如

Android开发之Eclipse快捷键

作为一名合格的Android程序员和Eclipse使用者,对于Eclipse快捷键的使用也是必不可少的,有效的使用快捷键可以帮助程序员大大的提高编程效率. 收集整理部分常用快捷键如下: 1. Alt+/ 内容辅助(代码提示.自动补齐) 2. Ctrl+Shift+O 自动导包(import Package) 3. Ctrl+L 转至某行 4. Ctrl+Alt+↓ 复制当前行到下一行(复制增加) 5. Ctrl+Alt+↑ 复制当前行到上一行(复制增加) 6. Alt+↓ 当前行和下面一行交换位

Android开发之Sensors与摇一摇

Sensor概述 基于Android的设备有内置的传感器,测量运动,方向,和各种环境条件.这些传感器能够提供原始数据的高精度和准确度,并且是有用的如果你想要监测装置.定位的三维运动,或者你想监控在设备周围环境的变化.例如,一个可能的轨道的读数装置的重力传感器来推断用户的手势和身体的动作复杂,如倾斜.摇晃.旋转.摆动或.同样,一个天气应用程序可能使用的设备的温度传感器和湿度传感器来计算和报告. Android平台支持的传感器三大类: 运动传感器 这些传感器测量加速度的力和旋转力沿三轴.这一类包括加

【转】Android 开发之旅:view的几种布局方式及实践

引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!”程序来实践证明了.在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题:View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍.View的布局显示方式有下面几种:线性布局(Linear Layout).

【转】Android开发之旅:活动与任务

引言 关于Android应用程序原理及术语,前面两篇: Android开发之旅:应用程序基础及组件 Android开发之旅:应用程序基础及组件(续) 介绍了Android应用程序的进程运行方式:每一个应用程序运行在它自己的Linux进程中.当应用程序中的任何代码需要执行时,Android将启动进程:当它不在需要且系统资源被其他应用程序请求时,Android将关闭进程.而且我们还知道了Android应用程序不像别的应用程序那样(有Main函数入口点),它没有单一的程序入口点,但是它必须要有四个组件

【转】Android开发之旅:组件生命周期

组件生命周期(一) 引言 应用程序组件有一个生命周期——一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生命周期将讨论活动.服务.广播接收者的生命周期——包括在生命周期中他们可能的状态.通知状态改变的方法.及这些状态的组件寄宿的进程被终结和实例被销毁的可能性. 本文主要讨论活动的生命周期及他们可能的状态.通知状态改变的方法.分为以下三部分: 1.活动生命周期 2.保存活动状态 3.协

Android开发之Tween(补间动画)完全解析(下)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51980734 在上一篇文章中,我们详细讨论了Tween动画的xml的实现以及interpolator的使用,相信通过上篇文章大家对Tween动画的xml属性的配置会有一个详细的理解,当然这篇文章也是承接上篇文章,所以强烈建议先阅读上篇文章:Android开发之Tween(补间动画)完全解析(上),这篇文章将从代码的角度实现上篇文章的效果.如有疑问请留言,如有谬误欢迎批评指正. T

Android开发之JSON使用

Android开发之JSON使用 今天在论坛看到有不少朋友问关于json的问题,所以想写一篇关于android中使用json的博客. 首先 json是什么 JSON的全称是JavaScript Object Notation,从这里可以看到它源于JavaScript,它采用文本形式体现.比如 {"name":"zhangsan","age":20,"wife":"如花"} 这个简单表示了一个对象,在java

Android开发之bindService()侦听service内部状态

在Android开发之bindService()通信的基础上,实现bindService()方法侦听service内部状态. 实现侦听service内部状态,使用的是回调机制 1.首先实现一个接口 1 public static interface CallBack{ 2 void onDataChange(String data); 3 } 2. 1 private CallBack callBack=null; 2 public void setCallBack(CallBack callB