Android(安卓)开发定位Demo
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) {
}
}
}
更多相关文章
- Android通知频道,通知点
- android 圆形头像的Imageview
- android打电话简单功能(完整代码)
- Android绘图Canvas、Paint
- Android(安卓)5.0设置全屏无标题
- Android曲线图,柱状图,饼图
- 百度SDK定位
- Android-section-list分组列表
- Android(安卓)使用ActivityOptions实现Activity转场动画