Перейти к содержанию
  • Регистрация
  • 0
Вадим Шавров

Импорт/экспорт БД

Вопрос

Приветствую. Как реализовать экспорт БД из программы, расположенной по адресу:

 2018-05-03_10-13-53.thumb.png.d54695ef94f679b521d16ee2d1a0450d.png

Т.е. чтобы выводилось стандартное андройдовское окно (см. скрин), как во многих приложениях при нажатии на кнопку "поделится", и там допустим можно было бы эту базу залить на Яндекс.Диск.

Ну соответственно хотелось бы сделать импорт скачанного файла по тому же адресу, через проводник допустим.

Можно ли это как-то реализовать?

1666241421_Screenshot__Android_20180503-100223.thumb.png.38c7751efaf3516ff7ea7cfc7fdf930e.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 2

Вот так:

procedure ShareFile(aFileName, aComment : String);
{$IFDEF ANDROID}
var Intent    : JIntent;
    uri       : Jnet_Uri;
    AttachmentFile: JFile;
    S : String;
{$ENDIF ANDROID}
begin
{$IFDEF ANDROID}
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_SEND);
  Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  S:=TPath.GetFileName(aFileName);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString(aComment));
  Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(aComment));
  AttachmentFile := TJFile.JavaClass.init(StringToJString(aFileName));
  Uri := TJnet_Uri.JavaClass.fromFile(AttachmentFile);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, TJParcelable.Wrap((Uri as ILocalObject).GetObjectID));
  Intent.setType(StringToJString('text/plain'));
//  Intent.setDataAndType(StrToJURI('file:' + TPath.Combine(TPath.GetSharedDownloadsPath, 'picture.png')), StringToJString ('image/png'));
  SharedActivity.startActivity(Intent);
{$ENDIF ANDROID}
end;

Из давнего проекта, возможно нужно будет подправить согласно сообщениям компилятора.

P.S. И файл должен находится в общедоступной папке (к примеру TPath.GetSharedDocumentsPath)

Изменено пользователем Евгений Корепов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Да, конечно. Что то из этих, лишнее уберите:

  Androidapi.JNI.Webkit,
  FMX.Platform.Android,
  Androidapi.Helpers,
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNIBridge,
  Androidapi.JNI.JavaTypes,
  Androidapi.JNI.Net,
  Androidapi.JNI.Os,
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вроде бы ошибок нет, а как правильно её вызывать?

ShareFile('storage/emulated/0/Documents/data.db', ???);

aFileName - это полный путь к файлу или только название "data.db'?

aComment - а это я вообще не понимаю для чего :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
15 минут назад, Вадим Шавров сказал:

Вроде бы ошибок нет, а как правильно её вызывать?

ShareFile('storage/emulated/0/Documents/data.db', ???);

aFileName - это полный путь к файлу или только название "data.db'?

aComment - а это я вообще не понимаю для чего :(

Конечно полный путь, откуда иначе функция узнает какой файл отправлять?

AComment - комментарий, типа "Это файл №199 из такого то приложения, служит для того то". Но никто не заставляет вас его писать.

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

И убедитесь в существовании файла перед его отправкой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 03.05.2018 в 10:23, Вадим Шавров сказал:

Приветствую. Как реализовать экспорт БД из программы, расположенной по адресу:

 2018-05-03_10-13-53.thumb.png.d54695ef94f679b521d16ee2d1a0450d.png

Т.е. чтобы выводилось стандартное андройдовское окно (см. скрин), как во многих приложениях при нажатии на кнопку "поделится", и там допустим можно было бы эту базу залить на Яндекс.Диск.

Ну соответственно хотелось бы сделать импорт скачанного файла по тому же адресу, через проводник допустим.

Можно ли это как-то реализовать?

1666241421_Screenshot__Android_20180503-100223.thumb.png.38c7751efaf3516ff7ea7cfc7fdf930e.png

Здравствуйте Вадим Шавров.

Моё имя Олег. Могу ли я Вам задать по этой теме вопросы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...