* 1.创建服务
* 2.获取所有的定位方式
* 3.选择获取定位方式
public class MainActivity extends AppCompatActivity {
private LocationManager locationManager;
private List<String> allProvider=new ArrayList<>();
private String provider;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 1.创建服务
* 2.获取所有的定位方式
* 3.选择获取定位方式
*/
locationManager= (LocationManager) getSystemService(Context.LOCATION_SERVICE);
allProvider=locationManager.getAllProviders();
if(allProvider.contains(LocationManager.GPS_PROVIDER)){
provider=LocationManager.GPS_PROVIDER;
}else if(allProvider.contains(LocationManager.NETWORK_PROVIDER)){
provider=LocationManager.NETWORK_PROVIDER;
}else{
Toast.makeText(this, "无法获取GPS", Toast.LENGTH_SHORT).show();
}
* 请求权限:
* 1.讲师加的权限
* 2.返回当前时间最后更新的
* 3.获取经纬度
* 4.添加位置监听器
/**
* 请求权限:
* 1.讲师加的权限
* 2.返回当前时间最后更新的
* 3.获取经纬度
* 4.添加位置监听器
*/
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 120);
} else {
Location lastKnownLocation = locationManager.getLastKnownLocation(provider);
//经度:
double longitude = lastKnownLocation.getLongitude();
//纬度:
double longitude1 = lastKnownLocation.getLongitude();
}
}
回调方法:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
@SuppressLint("MissingPermission")
Location lastKnownLocation = locationManager.getLastKnownLocation(provider);
//经度:
double longitude = lastKnownLocation.getLongitude();
//纬度:
double longitude1 = lastKnownLocation.getLongitude();
}