GPS定位
GPS技术实现定位功能
1、加权限
2、LocationManaget manager = getSystemService(Location_Service)
3、Location:位置类
getlatude:获取纬度
getlongtitude:获取经度
getAltitude:获取海拔
当位置发生改变时获得地址信息,调用LocationManager中的方法
requestLocationUpdate(位置提供器,为使变化的时间间隔,位置变化的距离间隔,事件监听(LicationListener))
位置提供器:
LocationProvider:LocationManager.NETWORK_PROVIDER
LocationProvider:LocationManager.GPS_PROVIDER
权限:
// An highlighted block
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
// An highlighted block
public class MainActivity extends AppCompatActivity {
private LocationManager manager;
private String[] permission = new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION};//要申请订单权限
private boolean ispermission;
private boolean isok;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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) {
return;
}
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();//获取经度
Log.e("##########经度",latitude+"");
double longitude = location.getLongitude();//获取纬度
Log.e("##########纬度",longitude+"");
double altitude = location.getAltitude();//获取海拔
Log.e("##########海拔",altitude+"");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
public void initPermission(){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
for (String p:permission) {
if(checkSelfPermission(p) != PackageManager.PERMISSION_GRANTED){
ispermission = true;
break;
}
}
if(ispermission){
requestPermissions(permission,500);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == 500){
for(int i=0;i<grantResults.length;i++){
if(grantResults[i] != PackageManager.PERMISSION_GRANTED){
isok = true;
}
}
}
}
博客主要介绍了GPS技术实现定位功能的相关内容。包括添加权限,使用LocationManager获取系统服务,通过Location类获取纬度、经度、海拔等信息。还说明了当位置改变时获取地址信息的方法,以及位置提供器的类型。

503

被折叠的 条评论
为什么被折叠?



