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 }

 

转载于:https://www.cnblogs.com/liyiran/p/5325269.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值