動的権限コードの要求Android 6.0


private void start() {
        if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
            //      
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
                            Manifest.permission.WRITE_EXTERNAL_STORAGE,
                            Manifest.permission.READ_PHONE_STATE},
                    MY_PERMISSIONS_REQUEST);
        }else{
            Intent intent = new Intent(SplashActivity.this,MainActivity.class);
            startActivity(intent);
            finish();
        }
    }

    //              
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        switch (requestCode){
            case MY_PERMISSIONS_REQUEST:
                for (int i = 0; i < grantResults.length; i++) {
                    //         
                    if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
                        Toast.makeText(SplashActivity.this, "         sdcard         ", Toast.LENGTH_SHORT).show();
                        return;
                    }
                }
                break;
        }
        Intent intent = new Intent(SplashActivity.this,MainActivity.class);
        startActivity(intent);
        finish();
    }