Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-02-2024
imaginate301 imaginate301 is offline
Registrado
 
Registrado: dic 2023
Posts: 1
Poder: 0
imaginate301 Va por buen camino
obtener ruta de archivo del explorador android

Buenas tardes, estoy intentando obtener la ruta de un archivo seleccionado desde el explorador de archivos por defecto de android.

Este procedimiento para abrirlo

Código Delphi [-]
procedure TForm15.OpenFileSelector;
var
  Intent: JIntent;
begin
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_OPEN_DOCUMENT);
  Intent.setType(StringToJString('*/*')); // Selecciona todos los tipos de archivos
  Intent.addCategory(TJIntent.JavaClass.CATEGORY_OPENABLE);
  SharedActivity.startActivityForResult(Intent, 0);

end;

Esta funcion para obtener la ruta

Código Delphi [-]
function TForm15.GetSelectedFilePath(const Intent: JIntent): string;
var
  Uri: Jnet_Uri;
  Cursor: JCursor;
  ColumnIndex: Integer;
  FilePath: string;
begin
  Result := '';
  Uri := Intent.getData;
  if Assigned(Uri) then
  begin
    Cursor := SharedActivity.getContentResolver.query(Uri, nil, nil, nil, nil);
    if Assigned(Cursor) then
    begin
      ColumnIndex := Cursor.getColumnIndexOrThrow(TJMediaStore_MediaColumns.JavaClass.DATA);
      Cursor.moveToFirst;
      FilePath := JStringToString(Cursor.getString(ColumnIndex));
      Cursor.close;
      Result := FilePath;
    end;
  end;
end;

y este para recibir la notificacion :

Código Delphi [-]
procedure TForm15.HandleActivityMessage(const Sender: TObject; const M: TMessage);
var
  ResultNotification: TMessageResultNotification;
  SelectedFilePath: string;
begin
  if M is TMessageResultNotification then
  begin
    ResultNotification := TMessageResultNotification(M);
    if ResultNotification.RequestCode = 0 then
    begin
      if ResultNotification.ResultCode = TJActivity.JavaClass.RESULT_OK then
      begin
        SelectedFilePath := GetSelectedFilePath(ResultNotification.Value);
        ShowMessage('Ruta del archivo seleccionado: ' + SelectedFilePath);
        rutapdf.Text:= SelectedFilePath;
      end;
    end;
  end;
end;

Utilizo el servicio de mensajeria de delphi

Código Delphi [-]
TMessageManager.DefaultManager.SubscribeToMessage(TMessageResultNotification, HandleActivityMessage);

En teoria lo guarda en un edit llamado rutapdf

En versiones anteriores a android 14 si me funciona, pero lo instalo en otro movil con android 14 y se bloquea al llamar al servicio de mensajeria.

Alguien me puede ayudar porfavor??

Última edición por Casimiro Notevi fecha: 29-02-2024 a las 20:41:38. Razón: Poner etiquetas [delphi] [/delphi] al código.
Responder Con Cita
  #2  
Antiguo 13-03-2024
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Hola.
A lo mejor digo una tontería, pero ¿has cambiado en el Manifiesto...?

Código:
<uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="34" />
y también

Código:
<activity
            android:name="com.embarcadero.firemonkey.FMXNativeActivity"
            android:label="%activityLabel%"
            android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
            android:launchMode="singleTask"
            android:exported="true">
Sé que es una oviedad, pero...

Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
obtener ruta de imagen android delphi edorantes Desarrollo en Delphi para Android 1 20-09-2017 14:28:58
Obtener ruta real doctorhd Varios 7 16-04-2015 21:27:07
Obtener ruta de archivo a partir de directorio superior pokexperto1 Varios 4 20-01-2015 01:00:36
obtener la ruta de una carpeta zanetti26 API de Windows 9 10-03-2007 02:23:20
Ejecutar Explorador con archivo seleccionado ixMike API de Windows 2 02-10-2006 19:06:44


La franja horaria es GMT +2. Ahora son las 08:12:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi