
Originariamente inviato da
Taurus768
Ciao,
scusa se non ho una risposta immediata da darti ma dal momento che anche io ho un problema simile volevo chiederti una cosa se non disturbo. Te sai già aprire un pdf che si trova nella cartella "res" della tua app?
Se riesco a trovare una soluzione la condividerò sicuramente.. ^^
Sul tuo problema posso dirti che è possibile leggere il file(cioè puoi ottenere lo stream di byte) ma non aprirlo con un programma! Per aprirlo con un reader devi copiare il tuo stream di byte sulla memoria esterna come file pdf e poi dire all'app di aprire il file che hai appena generato, che non è altro che una copia identica di quello nella tua cartella 'raw' all'interno di 'res'.
Con questo comando ottieni l'inputStream:
codice:
InputStream inputStream = resources.openRawResource(R.raw.yourresource);
Da qui con questa porzione di codice scrivi il file all'esterno:
codice:
File f=new File(path);
OutputStream out=new FileOutputStream(f);
byte buf[]=new byte[1024];
int len;
while((len=inputStream.read(buf))>0)
out.write(buf,0,len);
out.close();
inputStream.close();
Dopo questo basta che fai:
codice:
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(f), "application/pdf");
startActivity(intent);