zoukankan      html  css  js  c++  java
  • GPS追踪服务

    public class GPSService extends Service {
    private LocationManager lm;
    private MyListener listener;
    private SharedPreferences sp;

    @Override
    public IBinder onBind(Intent intent) {
    return null;
    }

    @Override
    public void onCreate() {
    lm = (LocationManager) getSystemService(LOCATION_SERVICE);
    sp = getSharedPreferences("config", MODE_PRIVATE);

    // 查询条件
    Criteria criteria = new Criteria();
    // 精确到
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    // 关心海拔
    criteria.setAltitudeRequired(true);
    // 运行产生开销
    criteria.setCostAllowed(true);
    // 允许最大电量请求
    criteria.setPowerRequirement(Criteria.POWER_HIGH);
    String provider = lm.getBestProvider(criteria, true);
    System.out.println("最好的提供者:" + provider);
    listener = new MyListener();
    lm.requestLocationUpdates(provider, 0, 0, listener);
    super.onCreate();
    }

    private class MyListener implements LocationListener {

    // 当位置变化的时候 调用的方法
    @Override
    public void onLocationChanged(Location location) {
    String longitude = "jingdu:" + location.getLongitude();
    String latitude = "weidu:" + location.getLatitude();
    String accuacy = "jingquedu:" + location.getAccuracy();
    Editor editor = sp.edit();
    editor.putString("last_location", latitude + longitude + accuacy);
    editor.commit();
    }

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

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }

    }

    @Override
    public void onDestroy() {
    lm.removeUpdates(listener);
    listener = null;
    super.onDestroy();
    }
    }

    <service android:name="com.itheima.mobilesafe.service.GPSService" ></service>

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />//精确定位
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />//大体定位
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />//模拟器专用

  • 相关阅读:
    Android开发 View_自定义快速索引侧边栏 SideBarView
    Android开发 PopupWindow开发的一些例子
    Android开发 Fragment里监听返回键
    AndroidStudio 清除项目里无用的资源
    Android开发 SingleLiveEvent解决LiveData或者MutableLiveData多次回调的问题
    字母排列城市列表资源
    Android开发 GridView详解
    Android开发 NestedScrollView嵌套RecyclerView导致的UI加载慢的问题
    Android开发 跳转指定应用商城评分
    Android开发 Activity生命周期详解
  • 原文地址:https://www.cnblogs.com/bravolove/p/4988186.html
Copyright © 2011-2022 走看看