手机卫士项目——手机防盗GPS追踪技术
2015-07-16 07:43
387 查看
1.个人感想由于随着手机不停的位置移动,手机防盗这款功能 是假设手机在丢失的情况下 要在后台偷偷的运行所以要用到Service服务(四大组件之一)
package com.android.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 SharedPreferences sp;
// 1.声明全局变量
private LocationManager lm;
private MyLocationListener listener;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
super.onCreate();
sp = getSharedPreferences("config", MODE_PRIVATE);
// 2.获取位置管理器
lm = (LocationManager) getSystemService(LOCATION_SERVICE);
// 3.位置条件
Criteria criteria = new Criteria();
//
criteria.setAccuracy(Criteria.ACCURACY_FINE);
// criteria.setAccuracy(Criteria.ACCURACY_FINE);//精确度
// criteria.setAltitudeRequired(false);//
// criteria.setBearingRequired(false);//
// criteria.setCostAllowed(true);//
// criteria.setPowerRequirement(Criteria.POWER_LOW);//耗电量
// 获取最好的位置服务提供者
String provider = lm.getBestProvider(criteria, true);
listener = new MyLocationListener();
lm.requestLocationUpdates(provider, 0, 0, listener);
}
@Override
public void onDestroy() {
super.onDestroy();
// 4.取消监听
lm.removeUpdates(listener);
listener = null;
}
class MyLocationListener implements LocationListener {
//
@Override
public void onLocationChanged(Location location) {
// 1.经纬度
String longitude = "j:" + location.getLongitude()+"\n";
String latitude = "w:" + location.getLatitude()+"\n";
String accuracy = "a:" + location.getAccuracy()+"\n";
//
//
Editor editor = sp.edit();
editor.putString("lastlocation", longitude+latitude+accuracy);
editor.commit();
//
// //2.
// TextView tv = new TextView(getApplicationContext());
// tv.setText(longitude+"\n"+latitude+"\n"+accuracy);
//
// setContentView(tv);
}
//
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
/**
*
*/
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
//
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
}
}
package com.android.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 SharedPreferences sp;
// 1.声明全局变量
private LocationManager lm;
private MyLocationListener listener;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
super.onCreate();
sp = getSharedPreferences("config", MODE_PRIVATE);
// 2.获取位置管理器
lm = (LocationManager) getSystemService(LOCATION_SERVICE);
// 3.位置条件
Criteria criteria = new Criteria();
//
criteria.setAccuracy(Criteria.ACCURACY_FINE);
// criteria.setAccuracy(Criteria.ACCURACY_FINE);//精确度
// criteria.setAltitudeRequired(false);//
// criteria.setBearingRequired(false);//
// criteria.setCostAllowed(true);//
// criteria.setPowerRequirement(Criteria.POWER_LOW);//耗电量
// 获取最好的位置服务提供者
String provider = lm.getBestProvider(criteria, true);
listener = new MyLocationListener();
lm.requestLocationUpdates(provider, 0, 0, listener);
}
@Override
public void onDestroy() {
super.onDestroy();
// 4.取消监听
lm.removeUpdates(listener);
listener = null;
}
class MyLocationListener implements LocationListener {
//
@Override
public void onLocationChanged(Location location) {
// 1.经纬度
String longitude = "j:" + location.getLongitude()+"\n";
String latitude = "w:" + location.getLatitude()+"\n";
String accuracy = "a:" + location.getAccuracy()+"\n";
//
//
Editor editor = sp.edit();
editor.putString("lastlocation", longitude+latitude+accuracy);
editor.commit();
//
// //2.
// TextView tv = new TextView(getApplicationContext());
// tv.setText(longitude+"\n"+latitude+"\n"+accuracy);
//
// setContentView(tv);
}
//
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
/**
*
*/
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
//
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
}
}
相关文章推荐
- Android中实现GPS定位的简单例子
- Android中GPS定位的用法实例
- Android实现GPS定位代码实例
- Android中如何监听GPS开启和关闭
- GPS全球卫星定位系统 基本原理
- android下的GPS服务
- Android中GPS/Map的运用
- Android gps定位
- GPS Tools For Android
- Android GPS架构分析详解
- 谷歌偏转库一个类
- 我国建北斗导航系统的原因
- GPS Camera网络相机
- c# GPS 2个经纬度 点 算之间的距离
- android 定位有些手机异常
- GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)
- Android permission 4000 访问权限大全
- UTC时间与北京时间的关系
- GPS NMEA-0183协议详解