安卓6.0以上 就需要动态获取权限
static final String[] LOCATIONGPS = new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.READ_PHONE_STATE};
/***
*
* @param activity
*/
public static void openQuanXian(final Activity activity){
if (Build.VERSION.SDK_INT >= 23) {
//--------------设置白名单
Intent ignore = new Intent();
ignore.setData(Uri.parse("package:"+activity.getPackageName()));
ignore.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
activity.startActivity(ignore);
//判断是否为android6.0系统版本,如果是,需要动态添加权限
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION)
!= PERMISSION_GRANTED) {// 没有权限,申请权限。
ActivityCompat.requestPermissions(activity, LOCATIONGPS,BAIDU_READ_PHONE_STATE);
}
}
}
这是动态获取GPS权限 就是询问的那块
一下代码是初始化GPS所需要的代码
private static final String TAG = "==Other";
public static void initGPS(final Activity activity) {
LocationManager locationManager = (LocationManager) activity.getSystemService(Context.LOCATION_SERVICE);
// 判断GPS模块是否开启,如果没有则开启
if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Log.d(TAG, "---> 判断GPS模块是否开启,如果没有则开启");
Toast.makeText(activity, "判断GPS模块是否开启,如果没有则开启", Toast.LENGTH_SHORT).show();
AlertDialog.Builder dialog = new AlertDialog.Builder(activity);
// dialog.setTitle("要使用定位功能,请打开GPS连接");
dialog.setMessage("要使用定位功能,请打开GPS连接");
dialog.setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int position) {
Log.d(TAG, "---> 设置");
// 转到手机设置界面,用户设置GPS
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
activity.startActivityForResult(intent, 0); // 设置完成后返回到原来的界面
}
});
dialog.setNeutralButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int position) {
Log.d(TAG, "---> 取消");
dialogInterface.dismiss();
}
});
AlertDialog alertDialog = dialog.create();
//点击外面不消失
alertDialog.setCanceledOnTouchOutside(false);
alertDialog.setCancelable(false);
alertDialog.show();
} else {
Log.d(TAG, "---> GPS模块已开启");
Toast.makeText(activity, "GPS模块已开启", Toast.LENGTH_SHORT).show();
}
}