Создание текстовых файлов из приложения Android не отображается в LG-D850

Я создал приложение для Android, которое создает текстовые файлы и записывает их в локальное хранилище устройства. Он отлично работает на всех других устройствах, я вижу созданные файлы во внутреннем хранилище. Однако в LG-D850 (обновленном до версии Android 7.1) приложение работает нормально, но не создает / не отображает файлы во внутренней памяти. Я проверил storage / emulated / 0, но его там нет.


person ZEESHAN    schedule 16.08.2017    source источник
comment
Что значит нормально работать на всех устройствах? Может быть, у этих устройств есть другая версия Android?   -  person Phil90    schedule 16.08.2017
comment
@ZEESHAN У вас есть разрешение на выполнение или только разрешения в манифесте?   -  person cunniemm    schedule 16.08.2017
comment
@cunnniemm Да, у меня есть разрешения в манифесте. Я тестировал свое приложение на устройствах Samsung, оно отлично работает на этих устройствах.   -  person ZEESHAN    schedule 16.08.2017
comment
@ZEESHAN Хорошо, одно отличие Android 6 и выше заключается в том, что вам нужно использовать разрешения времени выполнения! Проверить ответ   -  person cunniemm    schedule 16.08.2017
comment
Предоставьте минимальный воспроизводимый пример, демонстрирующий, как вы создаете этот файл. Также объясните, пожалуйста, как именно вы проверяли хранилище / эмуляцию / 0 (adb shell ls? Что-то еще?)   -  person CommonsWare    schedule 16.08.2017


Ответы (1)


Решение

Попробуйте использовать этот вызов этого метода в своем on create и примите разрешение, и вы сможете увидеть свой текстовый файл, в который вы его поместили.

public  boolean isStoragePermissionGranted() {
    if (Build.VERSION.SDK_INT >= 23) {
        if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
            == PackageManager.PERMISSION_GRANTED) {
            Log.v(TAG,"Permission is granted");
            return true;
        } else {

            Log.v(TAG,"Permission is revoked");
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
            return false;
        }
    }
    else { //permission is automatically granted on sdk<23 upon installation
        Log.v(TAG,"Permission is granted");
        return true;
    }
}

Метод, позволяющий проверить, что щелкнул пользователь, и решить, что делать с приложением после того, что он выбрал.

@Override
public void onRequestPermissionsResult(int requestCode,
                                   String permissions[], int[] grantResults) {
switch (requestCode) {
    case 1: {

      // If request is cancelled, the result arrays are empty.
      if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            // permission was granted, yay! Do the
            // contacts-related task you need to do.          
        } else {

            // permission denied, boo! Disable the
            // functionality that depends on this permission.
            Toast.makeText(MainActivity.this, "Permission denied to read your External storage", Toast.LENGTH_SHORT).show();
        }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
}
person cunniemm    schedule 16.08.2017