Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
serjufa1
1 / 1 / 0
Регистрация: 15.10.2007
Сообщений: 75
#1

Проверка расширенной памяти - Программирование Android

10.12.2015, 14:35. Просмотров 217. Ответов 3
Метки нет (Все метки)

Последовательность действий:
1. Сначала тестил программу на андроид-студио при подключенном ч/з USB сотовом LG
2. Потом отцепил USb, снял все задачи на сотовом и запустил вчистую прогу на сотовом.

Результат одинаков - ссылка на папку = внутренней памяти. А мне нужна внешняя microSD. В чем причина, не пойму. При этом, папка создается и во внутр и во внешней памяти.

В манифесте прописал :
Java
1
2
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
Теперь фрагмент кода (весь тоже могу выложить)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
   File myExternalFile;
    private String filename = "MySampleFile.txt";
    private String filepath = "MyFileStorage";
    String path1;
 private static boolean isExternalStorageReadOnly() {
        String extStorageState = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState)) {
            return true;
        }
        return false;
    }
 
    private static boolean isExternalStorageAvailable() {
        String extStorageState = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(extStorageState)) {
            return true;
        }
        return false;
    }
.........      
  if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
            saveToExternalStorage.setEnabled(false);
            //Toast.makeText(this, "NO external storage", Toast.LENGTH_LONG).show();
        } else {
            myExternalFile = new File(getExternalFilesDir(filepath), filename);
            path1 =  myExternalFile.toString();
            Toast.makeText(this, myExternalFile.toString(), Toast.LENGTH_LONG).show();
        }
    }
вот скрин
Миниатюры
Проверка расширенной памяти  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 14:35     Проверка расширенной памяти
Посмотрите здесь:

Драйвер, организующий доступ к расширенной памяти! - Информатика
Mouse.sys Ansi.sys Keyboard.sys Himem.sys Emm386.sys На сколько я помню с урока информатики, драйвер организующий доступ к...

Ошибки памяти при расширенной компиляции - C++ Builder
нет ошибки при компиляции и при работе приложения, когда компилирую в режиме теста (то есть не компилирует exe файл который может работать...

Проверка выделения памяти - C (СИ)
Алгоритм верен, все работает. Хочу проверять работу с памятью. т.е. проверять, что память действительно выделилась/освободилась. С...

Проверка на утечку памяти - C++ Qt
Есть оконное приложение где куча контейнеров и т.д. Как можно проверить, есть ли утечки памяти? (Qt5.7)

«Проверка памяти». игра - Delphi
Изобразить игровое поле, на котором будут появляться комбинации цифр различных цветов и размеров на некоторое время (2-3 секунды). Игроку...

Проверка на утечку памяти - C++
Всем доброго времени суток. Сразу оговорюсь, я не профессионал, программирование - моё хобби, которое помогает мне по основному...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
10.12.2015, 17:10     Проверка расширенной памяти #2
у меня работает вот так:
Java
1
2
3
4
        Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
        String extPicsDir = isSDPresent
            ? Environment.getExternalStorageDirectory().toString() + "/" + getAppName() + "/tempPics"
                : getApplicationContext().getCacheDir().toString();
serjufa1
1 / 1 / 0
Регистрация: 15.10.2007
Сообщений: 75
11.12.2015, 12:00  [ТС]     Проверка расширенной памяти #3
Надеялся на чудо. Но, увы. См.скрин.
Сначала пробовал в дебаггере. Затем отцепил USB, запустил на телеф. Но, ссылка только на внутр память.
Как же быть, у других же это работает? Может, я не то делаю ?
Миниатюры
Проверка расширенной памяти  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2015, 13:50     Проверка расширенной памяти
Еще ссылки по теме:

Поиск по расширенной маске - CMD/BAT
Нужны примеры расширенного использования маски в BAT файлах. К примеру: Только цифры в названии, не больше 3 цифр в названии..и...

Проверка освобождения памяти (new, delete) - C++
Всем привет. Программы помаленьку становятся сложнее. Появляются самодельные контейнеры внутри других самодельных контейнеров внутри...

Проверка ячейки памяти с эталоном - Assembler
Здравствуйте ! Прошу Вашей помощи в такой задаче: Нужно написать программу, которая приглашает пользователя, расписывает память и...

Игра: Проверка памяти человека - C#
Создать проект Тестирование памяти, в котором реализовать проверку уровня запоминания пятизначных чисел. В начале программа должна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
11.12.2015, 13:50     Проверка расширенной памяти #4
чутка поправим код, чоб уж совсем правильно.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
        extPicsDir = isSDPresent
            ? Environment.getExternalStorageDirectory().toString() + "/" + getAppName()
                : getApplicationContext().getCacheDir().toString();
 
createExtDirIfNeed(extPicsDir);
 
...
    private String getAppName () {
        final PackageManager pm = getApplicationContext().getPackageManager();
        ApplicationInfo ai;
        try {
            ai = pm.getApplicationInfo( this.getPackageName(), 0);
        } catch (final PackageManager.NameNotFoundException e) {
            ai = null;
        }
        return (String) (ai != null ? pm.getApplicationLabel(ai) : "unknown");
    }
 
    private void createExtDirIfNeed (String dirName) {
        File f = new File(dirName);
        if (!f.exists()) {
            f.mkdirs();
        }
    }
imho Ваша карта подключена как не карта. если ее убрать, то просто пропадет один из каталогов. и она называется не sdcard.

попробуйте вот по этому коду, что я дал, записать что-то (стр.6), потом вытащить карту и прочитать эту карту и этот путь на компе.

Добавлено через 8 минут
забыл спросить. если вытащить карту, то первая переменная возвращает false?
Yandex
Объявления
11.12.2015, 13:50     Проверка расширенной памяти
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru