android 4.0 打开gps,Android获取定位权限,手动打开GPS

获取定位权限,并且在没有打开GPS的时候引导用户打开手机GPS定位。

超级简单的

private Button button;

private int GPS_REQUEST_CODE = 1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = findViewById(R.id.open_gps);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

openGPSSEtting();

}

});

}

private boolean checkGpsIsOpen() {

boolean isOpen;

LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

isOpen = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

return isOpen;

}

private void openGPSSEtting() {

if (checkGpsIsOpen()){

Toast.makeText(this, "true", Toast.LENGTH_SHORT).show();

}else {

new AlertDialog.Builder(this).setTitle("open GPS")

.setMessage("go to open")

// 取消选项

.setNegativeButton("cancel",new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialogInterface, int i) {

Toast.makeText(MainActivity.this, "close", Toast.LENGTH_SHORT).show();

// 关闭dialog

dialogInterface.dismiss();

}

})

// 确认选项

.setPositiveButton("setting", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialogInterface, int i) {

//跳转到手机原生设置页面

Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);

startActivityForResult(intent,GPS_REQUEST_CODE);

}

})

.setCancelable(false)

.show();

}

}

@Override

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode ==GPS_REQUEST_CODE){

openGPSSEtting();

}

}