import androidx.appcompat.app.AppCompatActivity;import android.Manifest;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.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import java.util.List;public class MainActivity extends Activity {    private LocationManager locationManager;    private String locationProvider;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取地理位置管理器        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);        //获取所有可用的位置提供器        List<String> providers = locationManager.getProviders(true);        if (providers.contains(LocationManager.GPS_PROVIDER)) {            //如果是GPS            locationProvider = LocationManager.GPS_PROVIDER;        } else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {            //如果是Network            locationProvider = LocationManager.NETWORK_PROVIDER;        } else {            Toast.makeText(this, "没有可用的位置提供器", Toast.LENGTH_SHORT).show();            return;        }        //获取Location        if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {            // TODO: Consider calling            //    Activity#requestPermissions            // 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;        }        Location location = locationManager.getLastKnownLocation(locationProvider);        if (location != null) {            //不为空,显示地理位置经纬度            Log.i("TAG", "经度" + location.getLongitude() + "纬度" + location.getLatitude());            TextView tv1 = findViewById(R.id.tv1);            tv1.setText("经度" + location.getLongitude() + "纬度" + location.getLatitude());        }        //监视地理位置变化        if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {            // TODO: Consider calling            //    Activity#requestPermissions            // 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.requestLocationUpdates(locationProvider, 1000, 1, locationListener);    }    LocationListener locationListener = new LocationListener() {        @Override        public void onStatusChanged(String provider, int status, Bundle arg2) {        }        @Override        public void onProviderEnabled(String provider) {        }        @Override        public void onProviderDisabled(String provider) {        }        @Override        public void onLocationChanged(Location location) {            //如果位置发生变化,重新显示 如果位置改变,经纬度没有变,不会执行此函数 应该说经纬度发生变化执行此函数            Log.i("TAG","经度"+location.getLongitude()+"纬度"+location.getLatitude());        }    };    @Override    protected void onDestroy() {        super.onDestroy();        if (locationManager != null) {            //移除监听器            locationManager.removeUpdates(locationListener);        }    }}

更多相关文章

  1. Android(安卓)仿今日头条频道管理(下)(GridView之间Item的移动和拖
  2. Android(安卓)获取View的位置参数:x,y和相对父容器的偏移量以及中
  3. Android(安卓)studio 运行即打包keystore之build.gradle设置
  4. android 获取api key
  5. Android根据经纬度获取位置信息
  6. Android(安卓)MapView 申请apiKey
  7. Android(安卓)P SystemUI下拉时,状态栏和通知栏显示位置不一致。
  8. Android(安卓)MapView 申请apiKey
  9. android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果

随机推荐

  1. 使用PHP 5 DirectoryIterator而不是PHP 4
  2. redis的setnx锁到了超时时间失效,并发的问
  3. 用于替换PHPBB的PHP认证系统
  4. 如何配置使用CAS的PHP客户端--迁移文章(bl
  5. 无法使用dropzone上传多个文件
  6. 阿里云ECS服务器Linux环境下配置php服务
  7. phpstorm+wamp+xdebug配置php调试环境
  8. 印像新闻系统v1.0.c(php版下载)
  9. 是否有可能在PHP网站上进行Windows身份验
  10. 使用 PHP usort() 通过用户自定义的比较