package com.itheima.mobiesafe.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;
import android.telephony.SmsManager;
public class GPSService extends Service {
LocationManager lm;
MyListener listener;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
lm = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre"> </span>/*置参数细化:</span>
<p><span style="white-space:pre"> </span>criteria.setAccuracy(Criteria.ACCURACY_FINE);//设置为最大精度
<span style="white-space:pre"> </span>criteria.setAltitudeRequired(false);//不要求海拔信息
<span style="white-space:pre"> </span>criteria.setBearingRequired(false);//不要求方位信息
<span style="white-space:pre"> </span>criteria.setCostAllowed(true);//是否允许付费
<span style="white-space:pre"> </span>criteria.setPowerRequirement(Criteria.POWER_LOW);//对电量的要求 </p><span style="white-space:pre"> </span>*/
listener = new MyListener();
String provider = lm.getBestProvider(criteria, true);
lm.requestLocationUpdates(provider, 0, 0, listener);
}
class MyListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
String longitude = "j:" + location.getLongitude() + "\n";
String latitude = "w:" + location.getLatitude() + "\n";
String accuracy = "a" + location.getAccuracy() + "\n";
SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
Editor editor = sp.edit();
editor.putString("lastlocation", longitude + latitude + accuracy);
editor.commit();
}
@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
}
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
// 取消监听位置服务
lm.removeUpdates(listener);
listener = null;
}
}
<p>权限:</p><p> <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/></p><p> <uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/></p><p><uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION"/></p>
此方法 真机未成功过 但 模拟器上成功。。。