Владимир1 Опубликовано 27 мая, 2019 Поделиться Опубликовано 27 мая, 2019 Здравствуйте! Пытаюсь открыть сохранённые в телефоне фотографии JPEG при помощи кода Procedure ShowPhoto; var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJURI(‘file://storage/emulated/0/Documents/PHOTOS/pic.jpeg’), StringToJString('image/jpeg')); TAndroidHelper.Activity.startActivity(Intent); end; Delphi 10.3 . Разрешения на чтение/ запись (Write External storage и Read external Storage) получены через PermissionsService.RequestPermissions.... На андроиде 4.4 запускается. На андроиде 8 не запускается. Не могу понять - в чём дело. Помогите, пожалуйста, разобраться! Цитата Ссылка на комментарий
0 Владимир1 Опубликовано 30 мая, 2019 Автор Поделиться Опубликовано 30 мая, 2019 Здравствуйте! Решил вопрос таким образом: 1. Нужен будет файл: https://github.com/DelphiWorlds/KastriFree/blob/master/API/DW.Androidapi.JNI.FileProvider.pas Код будет такой: Procedure ShowPhoto; var Intent: JIntent; Authority: JString; Uri: Jnet_Uri; begin With Form1.PhotoGrid do i:=Selected*2+ColumnIndex; If i>FImages.Count-1 then Exit; Authority := StringToJString(JStringToString(TAndroidHelper.Context.getApplicationContext.getPackageName) + '.fileprovider'); Uri:=TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context, Authority, TJFile.JavaClass.init(StringToJString(FILE))); Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(Uri, StringToJString('image/*')); Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); TAndroidHelper.Activity.startActivity(Intent); end; У меня в Delphi подключен SDK 25. Работа проверена на Андроид 4.4 и 8.0 Ingalime и #WAMACO 2 Цитата Ссылка на комментарий
Вопрос
Владимир1
Здравствуйте!
Пытаюсь открыть сохранённые в телефоне фотографии JPEG при помощи кода
Procedure ShowPhoto;
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setDataAndType(StrToJURI(‘file://storage/emulated/0/Documents/PHOTOS/pic.jpeg’), StringToJString('image/jpeg'));
TAndroidHelper.Activity.startActivity(Intent);
end;
Delphi 10.3 .
Разрешения на чтение/ запись (Write External storage и Read external Storage) получены через PermissionsService.RequestPermissions....
На андроиде 4.4 запускается.
На андроиде 8 не запускается.
Не могу понять - в чём дело.
Помогите, пожалуйста, разобраться!
Ссылка на комментарий
1 ответ на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.