С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
6 / 6 / 3
Регистрация: 12.03.2014
Сообщений: 341

Работа с БД на USB носителе через OrmLite (Android 6)

28.04.2017, 20:33. Показов 965. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется usb flash drive, в котором хранится БД SQLite. Нужна возможность чтения/записи данных в БД.
Проблема возникла с получением доступа к usb flash drive.
На форуме ознакомился, но данный метод не сработал. Видит некий "/dev/bus/usb/001/002", но права на чтение и запись отсутствуют.
Версия Андроид: 6
Слышал, что в этой версии ОС необходимо у пользователя запрашивать права, но ведь в данном случае речь не идет о внутреннем хранилище.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2017, 20:33
Ответы с готовыми решениями:

Шифрование данных на usb носителе
Помогите пожалуйста, требуется написать программу, которая определяла бы наличие флешки при подключении и шифровала бы данные на ней, по...

Передача информации (byte array) с android на пк (c#) через usb
Здравствуйте. Подскажите пожалуйста, каким образом можно реализовать передачу информации в виде byte-ов с android на пк через usb?

Переводить команды USB WIFI Адаптера через компьютер по USB-USB для устройства
name: как передавать сигнал от требующего установку драйверов USB WIFI Адаптера через компьютер по USB-USB папа-папа кабелю для устройства...

2
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
29.04.2017, 09:32
Bolbine84455, я бы попробовал запросить права
1
6 / 6 / 3
Регистрация: 12.03.2014
Сообщений: 341
29.04.2017, 14:32  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
Bolbine84455, я бы попробовал запросить права
На текущий момент в MainActivity -> onCreate прописан следующий фрагмент кода:

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
30
//Тестируем - НАЧАЛО
        //Получаем доступ на запись
        verifyStoragePermissions(this); //Нет необходиомсти.
        startActivity(); // Пока бесполезно, т.к. через него с БД работать не получится
 
        List<String> listRecord = new ArrayList<String>();
 
        File directory  = new File("/storage/UsbDriveA/");
        listRecord.add("3");
 
        if (directory != null) {
            listRecord.add("2");
            if (directory.canRead()) {
                listRecord.add("1");
 
            }
        }
        
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.custom_spinner_layout, listRecord);
        adapter.setDropDownViewResource(android.R.layout.simple_list_item_1);
        Singleton.getInstance().setAdapter(adapter); // (!!!)
 
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(mMessageClickedHandler);
 
        //Инициализация Соединения с БД
        HelperFactory.setHelper(getApplicationContext());
        //
 
        //Тестируем - КОНЕЦ
Не менее важные методы
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void startActivity(){
        startActivityForResult(new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE), 42);
    }
 
    private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
    };
 
    public static void verifyStoragePermissions(Activity activity) {
        int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
        if (permission != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(
                    activity,
                    PERMISSIONS_STORAGE,
                    REQUEST_EXTERNAL_STORAGE
            );
        }
    }
Диалог вылезает, флешку вижу, выбираю её, но дальше listRecord.add("2"); не идет, т.е. нет права на чтения.

Если не ошибаюсь, то startActivity() отвечает за этот диалог, но объект, который он возвращает вроде бы нельзя использовать для ORMLite, т.к. тому путь нужен. Если я дам путь, то он все равно не будет иметь доступа, т.к. надо работать с объектом-провайдером доступа или как-то так.

Не знаю, пытаться изощряться как-то? Можно попытаться получить права на чтение/запись на USB, оттуда базу скопировать в локальное хранилище приложения и там уже пользователь будет работать с этой базой, а после выполнения транзакции база из локального хранилища будет копироваться на USB с заменой файлов. Как-то сложновато и не факт, что провайдер позволить читать данные бд.

Добавлено через 29 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Override
    public void onActivityResult(int requestCode,int resultCode,Intent resultData)
    {
        if(resultCode==RESULT_OK){
            Uri treeUri=resultData.getData();
            DocumentFile pickedDir = DocumentFile.fromTreeUri(this, treeUri);
            grantUriPermission(getPackageName(), treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
            getContentResolver().takePersistableUriPermission(treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION );
            initConnection(pickedDir);
        }else{
            startActivity();
        }
 
    }
Добавлено через 1 час 23 минуты
Ладно. Попробую реализовать через копирование
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2017, 14:32
Помогаю со студенческими работами здесь

Работа вебки через usb на больших расстояниях
Нужна помощь, подскажите, можно ли подключить вебкамеру через usb к ноутбуку, для проведения наладки оборудования, на расстоянии 60 метров

Подключение устройства и работа с ним через USB
Всем привет. Подскажите, есть устройства для печати. По одному нужно подключать в программу(настройки печати). Сейчас для обнаружения и...

Android studio, как запускать программу сразу на android смартфоне подключенному к usb?
android studio, как запускать программу сразу на android смартфоне подключенному к usb?

Работа с оборудованием NI PXIe или NI USB через интернет
Здравствуйте! Недавно возник вопрос, возможно ли работать с оборудованием удалённо? Для примера - есть шасси NI PXIe расположенные в...

Android:Internet over USB (usb revers tether)
Здравствуйте. Мне необходимо получить на мой планшет с android (4.2.2) сеть от ПК с помощью usb. Из всех методов что написаны в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru