private static String[] PERMISSIONS_STORAGE = {Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION};
//---------------------------GPS------------------------------------------------------------------
button_gps = (Button) root.findViewById(R.id.button_gps);
button_gps.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
//button_gps.setTextColor(Color.rgb(255, 0, 0));
locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
if (!isGpsAble(locationManager)) {
Toast.makeText(getActivity(), "请打开Gps!", Toast.LENGTH_SHORT).show();
openGps();
}
// 从gps获取最近的定位信息
if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getActivity(), PERMISSIONS_STORAGE, 4);
ActivityCompat.requestPermissions(getActivity(), PERMISSIONS_STORAGE, 5);
return;
}
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
StringBuilder sb =new StringBuilder();
sb.append("当前gps位置定位信息:\n");
sb.append("经度:"+location.getLongitude()+"\n");
sb.append("维度:"+location.getLatitude()+"\n");
sb.append("海拔:"+location.getAltitude()+"\n");
sb.append("速度:"+location.getSpeed()+"\n");
sb.append("方位:"+location.getBearing()+"\n");
sb.append("时间:"+location.getTime()+"\n");
sb.append("定位精度:"+location.getLongitude()+"\n");
Toast.makeText(getActivity(), sb.toString(), Toast.LENGTH_LONG).show();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
});
private boolean isGpsAble(LocationManager lm) {
return lm.isProviderEnabled(LocationManager.GPS_PROVIDER)?true:false;
}
// 打开设置界面让用户自己设置
private void openGps(){
Intent intent = new Intent(Settings.ACTION_LOCALE_SETTINGS);
startActivityForResult(intent,0);
}