Перейти к содержанию
Fire Monkey от А до Я
  • 0

Ошибка при TNetworkState.Create


Олег Киреев

Вопрос

Здравствуйте Уважаемые.

Подскажите пожалуйста как устранить ошибку (скрин в приложении) на строке TNetworkState.Create в приложении для OS Android в Delphi 10.3. на телефоне 10-й Андроид.

Процедура такая:

//Поделиться сохранённым файлом
procedure TForm_DB_BOKA_Glavn.ButtonПоделитьсяClick(Sender: TObject);
var
NS: TNetworkState;
begin
NS := TNetworkState.Create;
if not NS.IsConnected then
  begin
  ShowMessage('Нет подключения к интернету.');
  Abort;
  end else
   begin
   if NS.IsWifiConnected then ShowMessage('Подключено через WiFi');
   if NS.IsMobileConnected then ShowMessage('Подключено через WWAN');
   if FileExists(TPath.GetDownloadsPath+'/Модель_'+ComboBoxВсеМодели.Selected.Text+'.txt') then
     begin
     ShareFile(TPath.GetDownloadsPath+'/Model_'+ComboBoxВсеМодели.Selected.Text+'.txt', 'Это файл карточки модели '++ComboBoxВсеМодели.Selected.Text);
     Application.ProcessMessages;
     end else ShowMessage('Файл '+TPath.GetDownloadsPath+'/Model_'+ComboBoxВсеМодели.Selected.Text+'.txt'+' не найден.');
   end;
end;

Процедура ShareFile такая:

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;
При этом разрешение к памяти у телефона есть на это приложение. Интересно что в другом моём приложении где те же процедуры всё работает. Но перед тем как это 2-е приложение я запустил после обновления 9-го Андроида на 10-й система спросила сама разрешения а в этом нет. Я вручную разрешал. Может тут дело не в разрешениях???

Screenshot.jpg

Ссылка на комментарий

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

Ответов пока нет

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

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

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

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

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

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

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

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

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

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