Está en la página 1de 6

Noticias

Foros

Aplicaciones

Vdeos

Manuales

Buscar

Registrese

Identifiquese

FO R O

MEN SAJE

USUAR IO

Pro blemas pro gramando en ... Pro blemas pro gramando en ... Aplicacio nes Pro blemas pro gramando en ...

pro blemas co n el tamao de la pantalla C mo o btener items seleccio nado s en ListView co n C... Scan a PDF Enviar un fichero mediante POST

jchunly mblasco g abegiris tprieto


[+]

Foros

Consigue tu camiseta aqu

Abrir PDF desde cdigo


And ro id In- Ap p Payme nt s
Ac c e p t p ayme nts in yo ur ap p . Do wnlo ad PayPal' s And ro id lib rary! www.x.c o m/mp l

Lo cal C o up o ns
1 rid ic ulo us ly hug e c o up o n a d ay. G e t the b e s t o f yo ur c ity @9 0 % o ff! www.G ro up o n.c o m

Andro id In-App paym e nt s Free fo r develo pers, live in 50 + co untries wo rldwide.


us .fo rtumo .c o m/in-ap p -p ayme nts

nd ice d e l Fo ro www.And ro id - Sp a.co m - > Pro b le mas p ro g ramand o e n And ro id


Mo s trar me ns aje s ante rio re s :

Todos los mensajes

El ms antiguo primero

Ir

lucky_luck

Pub lic ad o : Sab Ag o 28 , 20 10 6 :59 p m

T t ulo de l me nsaje : Ab rir PDF d e s d e c d ig o

Me ns aje s : 118

Ho la a to do s. Esto y haciendo una aplicaci n para envo de PDF desde un PC a un terminal de andro id. Est el envo y co municacio nes finalizado . El pro blema me surge en la necesidad de abrir el pdf una vez recibido . He pro bado a abrirlo a travs del navegado r usando Go o gle Do cs PDF viewer, sin suerte:
C d ig o : PDFmyURL.com

intent-filter action android:name="android.intent.action.VIEW"/ data android:scheme="http" android:mimeType="application/pdf"/ category android:name="android.intent.category.DEFAULT"/ category android:name="android.intent.category.BROWSABLE"/ /intent-filter Intent intent = new Intent(); intent.setAction(getIntent().getAction()); intent.setData(Uri.parse( "http://docs.google.com/gview?embedded=true&url=" + fichero.getAbsolutePath() ))); startActivity(intent);

Se o s o curre alguna fo rma? Existe alguna aplicaci n que permita abrir un PDF desde nuestro c digo ? No ta. Po r cierto , cuando lo tenga 10 0 % funcio nando , co lgar el c digo fuente para que po dis usarlo para lo que necesitis. Muchas gracias.
lucky_luck

Pub lic ad o : Mar Ag o 31, 20 10 10 :33 am

T t ulo de l me nsaje : Co ns e g uid o !!!!!

Me ns aje s : 118

Bueno , al final y despues de mucho rebuscar, investigar y deducir, lo he lo grado . Luego ha resultado que es una cho rrada, pero carajo , ha co stado . Co mparto el c digo del pro yecto . Empezar co n el c digo java: CODIGO JAVA.
C d ig o : public static void main(String args[]) { ServerSocket ss = null; try { // Establecemos el puerto por el que escucharemos peticiones. ss = new ServerSocket(50001); } catch (IOException ioe) { System.err.println("Error al abrir el socket de servidor : " + ioe); System.exit(-1); } //Mensaje para saber quien somos y puerto por el que escuchamos. System.out.println("LocalHost = " + ss.getLocalPort()); int entrada; long salida; while (true) { try { // El hilo se parar aqu hasta que tengamos entrada de datos. PDFmyURL.com

// El hilo se parar aqu hasta que tengamos entrada de datos. // Lo hacemos as para que sea el "cliente" quien conecte y no el servidor. // de forma que esperamos recibir datos(furralla) para tener la // informacin del cliente para luego enviarle los datos. Socket sckt = ss.accept(); DataInputStream dis = new DataInputStream(sckt.getInputStream()); DataOutputStream dos = new DataOutputStream(sckt.getOutputStream()); int puerto = sckt.getPort(); InetAddress direcc = sckt.getInetAddress(); // recibimos los datos(furralla), pero podemos espera datos de autenticacin si en nuestra aplicacin fuera necesario. entrada = dis.readInt(); // Retornamos los datos del fichero en array de byte al terminal. File fichero = new File("C:\\preview2.pdf"); InputStream is = new FileInputStream(fichero); long length = fichero.length(); if (length > Integer.MAX_VALUE) {} byte[] bytes = new byte[(int)length]; int offset = 0; int numRead = 0; while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) { offset += numRead; dos.write(bytes); System.out.println(new String(bytes)); } if (offset < bytes.length) { throw new IOException("No puede completar la lectura del fichero "+fichero.getName()); } // Cerramos todas las conexiones con el cliente. is.close(); dis.close(); dos.close(); sckt.close(); } catch (Exception e) { System.err.println("Se ha producido la excepcin : " + e); } } }

Aho ra el c digo de Andro id. Me centrar en lo impo rtante, tan so lo en la transferencia y co nexi n po r udp y la llamada al intent para que me abra el pdf. CODIGO ANDROID.
C d ig o : // Este es el cdigo para recibir el pdf y almacenarlo en la tarjeta de memoria. PDFmyURL.com

String server = "192.168.1.112"; // Est es la maquina Java (servidor) donde est el pdf. int port = 50001; // el puerto del servidor. Log.d("TCP", " socket " + server + " " + port); Socket sk = null; java.io.InputStream fis = null; PrintWriter salida = null; FileOutputStream fOut = null; try { sk = new Socket(server, port); fis = sk.getInputStream(); salida = new PrintWriter(new OutputStreamWriter(sk.getOutputStream()), true ); // mensaje a consola eclipse Log.d("TCP", "Enviando..."); salida.println("codigovalidacion"); try { fOut=new FileOutputStream("sdcard/samplefile.pdf"); byte[] buffer = new byte[8 * 1024]; int count = 0; progressBar.setVisibility(View.VISIBLE); texto.setVisibility(View.VISIBLE); do { fOut.write(buffer, 0, count); count = fis.read(buffer, 0, buffer.length); } while (count != -1); progressBar.setVisibility(View.INVISIBLE); texto.setVisibility(View.INVISIBLE); Log.d("TCP", "Datos recibidos."); Log.d("TCP", "Fin... total datos recibidos="+String.valueOf(count)); } catch (Exception es) { Log.d("TCP","Error leyendo fichero "+es); es.printStackTrace(); } } catch (Exception e) { // TODO: handle exception; Log.d("TCP", "error " + e.toString()); }finally{ try{ // MUY IMPORTANTE !!!! // Es necesario cerrar todos los ficheros que usemos, de otra forma no podramos abrir el fichero con otra aplicacin hasta que // no se cierre el Activity actual y mate todas las conexiones, incluidas las "conexiones con los fichero". fOut.close(); salida.close(); fis.close(); sk.close(); } catch (Exception e) { Log.d("TCP", "error " + e.toString()); } } PDFmyURL.com

C digo para abrir el pdf una vez recibido . Para ello llamaremo s a un nuevo o bjeto que hemo s creado previamente y lo estableceremo s de la siguiente fo rma en el Andro id Manifest:
C d ig o :

<activity android:name=".MostrarPdf" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:mimeType="application/pdf" /> </intent-filter> </activity>

Y en el c digo del create llamamo s a la funci n que abre directamente el PDF. Este c digo buscar en el sistema el pro grama que sea capaz de abrir el tipo de archivo pdf.
C d ig o : public void abrirPDF(){ Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); String category = new String("android.intent.category.DEFAULT"); intent.setDataAndType(Uri.fromFile(new File("sdcard/samplefile.pdf")), "application/pdf"); startActivity(intent); MostrarPdf.this.finish(); }

nd ice d e l Fo ro www.And ro id - Sp a.co m - > Pro b le mas p ro g ramand o e n And ro id Pg ina 1 d e 1

To d as las ho ras e s tn e n G MT + 2 Ho ras

Ve r t e ma ant e rio r :: Ve r sig uie nt e t e ma


Saltar a:

Problemas programando en Android

Ir
No pue de c re ar me ns aje s

PDFmyURL.com

No pue de re s p o nd e r te mas No pue de e d itar s us me ns aje s No pue de b o rrar s us me ns aje s No pue de vo tar e n e nc ue s tas

Powered by Android-SPA Team & PHPbb

PDFmyURL.com

También podría gustarte