package com.zaizai.safty.service;

import android.Manifest;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
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.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;


import java.io.IOException;
import java.io.InputStream;

/**
* Created by zaizai on 2015/11/3.
*/
public class GPSService extends Service {

private static final String TAG = "zaizai";
private LocationManager locationManager;
private MyLocationListener myLocationListener;

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

@Override
public int checkSelfPermission(String permission) {
return super.checkSelfPermission(permission);

}

@Override
public void onDestroy() {
super.onDestroy();
/*取消监听位置服务*/
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// public void requestPermissions(@NonNull String[] permissions, int requestCode)
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for Activity#requestPermissions for more details.
return;
}
locationManager.removeUpdates(myLocationListener);
myLocationListener = null;

}

@Override
public void onCreate() {
super.onCreate();
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
myLocationListener = new MyLocationListener();


if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// public void requestPermissions(@NonNull String[] permissions, int requestCode)
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for Activity#requestPermissions for more details.
return;
}
/*给位置提供者设置条件*/
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 proveder = locationManager.getBestProvider(criteria, true);
locationManager.requestLocationUpdates(proveder, 0, 0, myLocationListener);

}

class MyLocationListener implements LocationListener {

/**
* 位置改变时回调
*
* @param location
*/
@Override
public void onLocationChanged(Location location) {
/*经度*/
String logitude = "j" + location.getLongitude() + "\n";
String latitude = "w" + location.getLatitude() + "\n";
String accuracy = "a" + location.getAccuracy() + "\n";

}

/**
* 状态发生改变时回调
*
* @param provider
* @param status
* @param extras
*/
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}

/**
* Called when the provider is enabled by the user.
*
* @param provider
*/
@Override
public void onProviderEnabled(String provider) {

}

/**
* Called when the provider is disabled by the user. If requestLocationUpdates is called on an already disabled provider, this method is called immediately.
*
* @param provider
*/
@Override
public void onProviderDisabled(String provider) {

}
}

}

更多相关文章

  1. Android通知频道,通知点
  2. android 圆形头像的Imageview
  3. android打电话简单功能(完整代码)
  4. Android绘图Canvas、Paint
  5. Android(安卓)5.0设置全屏无标题
  6. Android曲线图,柱状图,饼图
  7. 百度SDK定位
  8. Android-section-list分组列表
  9. Android(安卓)使用ActivityOptions实现Activity转场动画

随机推荐

  1. js引用,常用数据类型,变量与常量,函数(高阶,箭
  2. Firefox logo仍包含小狐狸
  3. 接口和抽象类
  4. <JVM下篇:性能监控与调优篇>补充:浅堆深堆
  5. 负载均衡概念入门
  6. <JVM下篇:性能监控与调优篇>补充:使用OQL语
  7. 负载均衡概念入门
  8. 微信小程序介绍、配置、视图层、逻辑层、
  9. 互动网站建设,如何操作,海量模板一站式建站
  10. <JVM下篇:性能监控与调优篇>04-JVM运行时