debug is on the table: Google Cloud Print + Android
Google Cloud Print + Android
O post de hoje tem todos os créditos do meu colega Felipe Vasconcelos, que precisou adicionar a funcionalidade de imprimir um documento através de um aparelho Android.
A solução utilizada por ele foi o Google Cloud Print (http://www.google.com/cloudprint), um serviço que permite com que você compartilhe a(s) impressora(s) conectadas à sua máquina através da sua conta do Google.
O serviço está disponível apenas para máquinas Windows, por enquanto. Para utiliza-lo, é necessário fazer o download do Chrome, em seguida, habilitar o serviço. Para tal, basta seguir esse tutorial (do próprio Google).
Após habilitar o serviço, basta entrar no site do cloud print e "automagicamente" as impressoras que estão conectadas à sua máquina estarão "nas núvens", prontas para receber impressões.
Para imprimir documentos a partir da sua aplicação Android, basta adicionar os arquivos print_dialog.xml e PrintDialog.Activity.java ao seu projeto Android (na pasta res/layout e src respectivamente). Não esqueça de declarar a Activity e adicionar a permissão android.permission.INTERNET ao AndroidManifest.xml. Esses arquivos são do próprio Google (veja aqui).
Agora, para imprimir um arquivo TXT que esteja no SDCard, por exemplo, basta utilizar o código abaixo:
Intent printIntent =
new Intent(this, PrintDialogActivity.class);
printIntent.setDataAndType(
Uri.parse("file:///mnt/sdcard/arquivo.txt"),
// Job da impressora
printIntent.putExtra("title", "Meu arquivo");
Como vc deve imaginar, se fosse imprimir outro tipo de arquivo, bastaria mudar o MIME type.
Será exibida a tela abaixo. Faça o login no aparelho Android, selecione uma impressora, clique em "Print" e pronto!