onRequestPermissionsResult автоматически дает отрицательный ответ при запросе разрешения

Я пытаюсь получить ответ от разрешения "WRITE_EXTERNAL_STORAGE" через onRequestPermissionsResult и все бы ничего но пользователь ничего не выбрал а уже сработал ответ NO .(Так только первый раз ) потом все работает как нужно .

public class MainActivity2_3 extends AppCompatActivity {


        private static final int REQUEST_EXTERNAL_STORAGE = 1;
        private static String[] PERMISSIONS_STORAGE = {
                Manifest.permission.READ_EXTERNAL_STORAGE,
                Manifest.permission.WRITE_EXTERNAL_STORAGE
        };


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main_activity2_3);

        }

        public void onClick_download(View v) {


            if (ActivityCompat.checkSelfPermission(MainActivity2_3.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
                    PackageManager.PERMISSION_GRANTED)
            {

                ActivityCompat.requestPermissions(MainActivity2_3.this, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);

                // Здесь thisActivity - текущая активность.
                if (ContextCompat.checkSelfPermission(MainActivity2_3.this,
                        Manifest.permission.WRITE_EXTERNAL_STORAGE)
                        != PackageManager.PERMISSION_GRANTED) {

                    // Разрешение не предоставляется
                    // Должны ли мы показать объяснение?
                    if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity2_3.this,
                            Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
                        // показать объяснение пользователю * асинхронно * - не блокировать
                        // эта тема ждет ответа пользователя! После пользователя
                        // видит объяснение, попробуйте еще раз запросить разрешение.
                    } else {
                        // Объяснение не требуется; запросить разрешение
                        ActivityCompat.requestPermissions(MainActivity2_3.this,
                                new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                                REQUEST_EXTERNAL_STORAGE);

                        // MY_PERMISSIONS_REQUEST_READ_CONTACTS является
                        // определенная в приложении константа int Метод обратного вызова получает
                        // результат запроса.
                    }
                } else {
                    // Разрешение уже предоставлено
                }

            }

            else
            {


            }


        }

        @Override
        public void onRequestPermissionsResult(int requestCode,
                                               String[] permissions, int[] grantResults) {
            switch (requestCode) {
                case  REQUEST_EXTERNAL_STORAGE: {
                    // Если запрос отменен, результирующие массивы пусты.
                    if (grantResults.length > 0
                            && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                        // разрешение было предоставлено,  Сделать
                        // связанное с контактами задание, которое вам нужно сделать.
                        Toast.makeText(getApplicationContext(), "YES", Toast.LENGTH_LONG ).show();
                    } else {
                        // разрешение отклонено,  Отключить
                        // функциональность, которая зависит от этого разрешения.
                        Toast.makeText(getApplicationContext(), "NO", Toast.LENGTH_LONG ).show();
                    }
                    return;
                }

                // другие строки 'case' для проверки других
                // разрешения это приложение может запросить.
            }
        }




    }

Ответы (0 шт):