AS 定位之经纬度获取(一)

来源:互联网 发布:武汉 人工智能 编辑:程序博客网 时间:2024/06/06 04:40
package com.weixin.diaoyong;import android.content.Context;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;import android.widget.Toast;import java.util.List;public class GpsActivity extends AppCompatActivity {    private String provider;    private LocationManager locationmanager;    private TextView textView1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_gps);        /**         * GPS于NETWORK定位         *         **/        textView1=(TextView)findViewById(R.id.textView1);        locationmanager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);//getSystemService()  用来获取需要系统的什么服务        List<String> provideList = locationmanager.getProviders(true);//getProvider()获取的是布尔值,用来判断是否开启了定位功能        if (provideList.contains(LocationManager.GPS_PROVIDER)){      //如果是开启了GPS来定位            provider=LocationManager.GPS_PROVIDER;        }else if(provider.contains(LocationManager.NETWORK_PROVIDER)){   //如果是通过NETWOKR功能来定位            provider=LocationManager.NETWORK_PROVIDER;        }else{            Toast.makeText(this,"未开启定位服务",5000).show();            return;        }        Location location = locationmanager.getLastKnownLocation(provider);    //Location 里面有一系列我们需要的数据 比如经度、纬度        if (location != null){            showLocation(location);        }        locationmanager.requestLocationUpdates(provider,5000,1, locationListener);  //每隔5秒重新获取位置    }    protected void onDestroy(){   //在摧毁后 移除监听器        super.onDestroy();        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) {        }    };    public void showLocation(Location location){        textView1.setText("经度为:"+location.getLatitude()+"\n纬度为:"+location.getLongitude());    }}
0 0
原创粉丝点击