Buenos días ante todo. Tengo una consulta para los más manitas de por aquí.
Estoy tratando de hacer que mi aplicación detecte cuando se conecta al pc un teléfono Android para sincronizar varios datos de la tarjeta SD, para eso he utilizado algunos ejemplos que he encontré por el foro.
Código Delphi
[-]
Procedure Buscar;
begin
Try
for Letra:= 'C' to 'J' do
begin
if GetDriveType(Pchar(Letra+':\')) = DRIVE_REMOVABLE then
begin
If FileExists(Letra+':\prueba.txt') then ShowMessage('Tengo la SD, ahora sincronizo');
end;
end;
Except;
End;
End;
Este ejemplo es fantástico para unidades de USB comunes, pero con las tarjetas SD o teléfonos (En solo cargar) tengo un problema, el sistema asigna la letra de la unidad aunque no este montada o no tenga medio insertado, así que cuando hago el
FileExists o cualquier otro intento de acceder al contenido para ver si la tarjeta está presente, salta una excepción del sistema que no puedo controlar con
Try-Except diciendo que (
Inserte un disco en la unidad X: ).
La pregunta, ¿Existe alguna forma de verificar si el medio está insertado y montado antes de acceder a el para que no salte la excepción? o bien ¿Puedo controlar de alguna forma esa dichosa excepción?