List<String> per = new ArrayList<>(); if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){ per.add(Manifest.permission.ACCESS_FINE_LOCATION); } if (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.ACCESS_COARSE_LOCATION)!=PackageManager.PERMISSION_GRANTED){ per.add(Manifest.permission.ACCESS_COARSE_LOCATION); } if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED){ per.add(Manifest.permission.READ_PHONE_STATE); } if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){ per.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } if (!per.isEmpty()){ String[] permissions = per.toArray(new String[per.size()]); ActivityCompat.requestPermissions(MainActivity.this,permissions,1); } else requestLocation();
public void onRequestPermissionResult(int requestCode,String[] permissions,int[] grantResults){ switch (requestCode) { case 1: if (grantResults.length > 0) { for (int result:grantResults) { if (result != PackageManager.PERMISSION_GRANTED){ Toast.makeText(this,"必须同意权限才能使用",Toast.LENGTH_LONG).show(); finish(); return; } } requestLocation(); } else { Toast.makeText(this,"wrong",Toast.LENGTH_LONG).show(); finish(); } break; default: } }