GPS positioning technology
1. Add permission
2LocationManger manger = getSystemService (Locationg_Service)
acquiring location management class
3 Location position based
getLaatitale () Gets the value of the latitude
getLongtitude () Gets the value of longitude
getAktutyde () obtaining altitude
method for obtaining address information in the call locationManager when the position is changed
requestlocationUpdate providing interval change the position location time
interval from the change in position of the listener LocationListener
Code
LocationManager manager;
String[] permissions;
boolean hasnoPermisson;
boolean isOK = false;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
permissions = new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION};
manager = (LocationManager) getSystemService(LOCATION_SERVICE);
initPermission();
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
// ActivityCompat#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 ActivityCompat#requestPermissions for more details.
return;
}
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
@RequiresApi(api = Build.VERSION_CODES.M)
public void initPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
for (String per : permissions) {
if (checkSelfPermission(per) != PackageManager.PERMISSION_GRANTED) {
hasnoPermisson = true;
break;
}
}
}
if (hasnoPermisson) {
requestPermissions(permissions, 100);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 100) {
for (int result : grantResults) {
if (result != PackageManager.PERMISSION_GRANTED) {
isOK = true;
break;
}
}
}
if (isOK) {
Log.e("error", "权限没申请成功");
}
}
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.e("###经度是:", location.getLatitude() + "");
Log.e("###维度是:", location.getLongitude() + "");
Log.e("###海拔是:", location.getAltitude() + "");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};