делает меня счастливым

еключил свое приложение на целевой API 27, и теперь оно не может быть предоставленоWRITE_EXTERNAL_STORAGE разрешение -grantResult является всегда-1.

Мое приложение нуждается в этом разрешении, поскольку оно не использует частное внешнее хранилище приложений (котороене требует WRITE_EXTERNAL_STORAGE начиная с API 19).

Я знаю, что в API 26 былиизменения поведения для разрешений, Однако это не объясняет мою проблему.

Я прошу обаREAD_EXTERNAL_STORAGE а такжеWRITE_EXTERNAL_STORAGE разрешения стандартным способом:

ActivityCompat.requestPermissions(activity, new String[] {
        Manifest.permission.READ_EXTERNAL_STORAGE,
        Manifest.permission.WRITE_EXTERNAL_STORAGE
    }, requestCode);

(оба разрешения объявлены через<uses-permission в манифесте).

Откроется диалоговое окно, и я нажимаю «Разрешить»:

Однако внутриonRequestPermissionsResult обратный звонок я получаю-1(отказано) дляWRITE_EXTERNAL_STORAGE (а также0 (предоставлено) дляREAD_EXTERNAL_STORAGE).

Не должен ли быть результат0 для обоих, так как я просил и, по-видимому, предоставил оба?

Я пытался запроситьWRITE_EXTERNAL_STORAGE в одиночку, но в этом случае диалог не появляется вообще.

Еще одна деталь: я только что проверил объединенный манифест вbuild/intermediates/manifests/full/debug и заметил, чтоWRITE_EXTERNAL_STORAGE разрешение имеет атрибутandroid:maxSdkVersion="18" (в моем манифесте такого атрибута нет). Это может произойти, потому что мое приложение имеетminApiVersion=21, но я не уверен.

Ответы на вопрос(1)

Ваш ответ на вопрос