Hola!
Llevo tiempo intentando averiguar si esto es posible. Teniendo un documento (TXT, PDF o lo que sea), puedo usar Intent para abrirlo, compartirlo, enviarlo a otra aplicación compatible, etc.
Por ejemplo, este es el código que uso para abrir un PDF:
Código Delphi
[-]
procedure OpenPDF(const AFileName: string);
var
LIntent: JIntent;
LAuthority: JString;
LUri: Jnet_Uri;
begin
LAuthority := StringToJString(JStringToString(TAndroidHelper.Context.getApplicationContext.getPackageName) + '.fileprovider');
LUri := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context, LAuthority, TJFile.JavaClass.init(StringToJString(AFileName)));
LIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
LIntent.setDataAndType(LUri, StringToJString('application/pdf'));
LIntent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
TAndroidHelper.Activity.startActivity(LIntent);
end;
Con
ACTION_VIEW o
ACTION_SEND lo que hace es mostrar las apps compatibles con el formato que le queramos pasar (en este caso
application/pdf).
La pregunta es...
¿cómo hacen otras apps para que cuando pulsas "Imprimir" aparezca directamente la lista de impresoras, en vez de la ventana de compartir?
La app de Adobe Reader, el cliente de email BlueMail y otras varias que he probado en mi móvil permiten esto.
¿Qué servicio, clase de java o flags hay que enviar en el Intent?