package com.example.administrator.locationtest;import android.app.Activity;import android.content.Context;import android.content.pm.PackageManager;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.support.v4.content.ContextCompat;import android.widget.TextView;import android.widget.Toast;import org.w3c.dom.Text;import java.util.List;import java.util.jar.Manifest;/** * Created by Administrator on 2016/4/8. */public class MainActivity extends Activity{    private TextView positionTextView;    private LocationManager locationManager;    private String provider;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        positionTextView=(TextView)findViewById(R.id.position_text_view);        locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);        if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION)== PackageManager.PERMISSION_GRANTED){
//此处的判定是主要问题,API23之后需要先判断之后才能调用locationManager中的方法
//包括这里的getLastKnewnLocation方法和requestLocationUpdates方法            Location location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);            if(location!=null){                showLocation(location);            }            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,5000,10,locationListener);        }    }    @Override    protected void onDestroy() {        super.onDestroy();        if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION)== PackageManager.PERMISSION_GRANTED){
//此处同样需要判定之后才能调用removeUpdates方法            if(locationManager!=null){                locationManager.removeUpdates(locationListener);            }        }    }    LocationListener locationListener=new LocationListener() {        @Override        public void onLocationChanged(Location location) {            showLocation(location);        }        @Override        public void onStatusChanged(String provider, int status, Bundle extras) {        }        @Override        public void onProviderEnabled(String provider) {        }        @Override        public void onProviderDisabled(String provider) {        }    };    private void showLocation(Location location){        String currentPosition="latitude is"+location.getLatitude()+"\n"+"longitude is"+location.getLongitude();        positionTextView.setText(currentPosition);    }}
                                                                                               

更多相关文章

  1. Android:获取屏幕分辨率方法汇总
  2. android获取屏幕长宽的方法
  3. android 进程自杀再重启的方法
  4. Android监听HOME键的最简单的方法
  5. android EditText 不自动弹出键盘的方法
  6. Android Studio ADB响应失败解决方法

随机推荐

  1. android起始页面与导航页面
  2. Android变成setContentView()报错空指针异
  3. Android(安卓)Studio中buildToolsVersion
  4. android studio如何添加jni
  5. Visual Studio + android + opencv 跨平
  6. SharedPreference用法
  7. Android(安卓)学习之旅---Activity生命周
  8. Android最佳实践之触摸手势
  9. Android取得当前屏幕静态布局的截图
  10. Android模拟手机QQ+发送短信案例