Abrir el archivo pdf desde el servidor con la intención de Android

Estoy buscando en la web cómo abrir el archivo pdf desde el servidor con el visor de pdf por defecto en android. Lo que encontré es descargar el archivo primero, a continuación, iniciarlo en la intención o cargar con google docs. No quiero hacer todo esto. Sólo quiero cargar directamente desde el servidor en el visor de pdf por defecto desde el teléfono. He intentado abrir el url del vídeo con intención y funcionó. Pero abrir url de pdf con intención no está funcionando. A continuación se muestra mi código;

private void openFilePDF(){ try{ Toast.makeText(getBaseContext(), "Opening PDF... ", Toast.LENGTH_SHORT).show(); Intent inte = new Intent(Intent.ACTION_VIEW); inte.setDataAndType( Uri.parse("http://122.248.233.68/pvfiles/Guide-2.pdf"), "application/pdf"); startActivity(inte); }catch(ActivityNotFoundException e){ Log.e("Viewer not installed on your device.", e.getMessage()); } } 

¿Hay alguna manera que puedo cargar pdf url en intención?

Primero Cree una clase de descargador

 public class Downloader { public static void DownloadFile(String fileURL, File directory) { try { FileOutputStream f = new FileOutputStream(directory); URL u = new URL(fileURL); HttpURLConnection c = (HttpURLConnection) u.openConnection(); c.setRequestMethod("GET"); c.setDoOutput(true); c.connect(); InputStream in = c.getInputStream(); byte[] buffer = new byte[1024]; int len1 = 0; while ((len1 = in.read(buffer)) > 0) { f.write(buffer, 0, len1); } f.close(); } catch (Exception e) { e.printStackTrace(); } } } 

Después de que crear una actividad que descarga el archivo PDF desde Internet,

 public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String extStorageDirectory = Environment.getExternalStorageDirectory() .toString(); File folder = new File(extStorageDirectory, "pdf"); folder.mkdir(); File file = new File(folder, "Read.pdf"); try { file.createNewFile(); } catch (IOException e1) { e1.printStackTrace(); } Downloader.DownloadFile("http://122.248.233.68/pvfiles/Guide-2.pdf", file); showPdf(); } public void showPdf() { File file = new File(Environment.getExternalStorageDirectory()+"/Mypdf/Read.pdf"); PackageManager packageManager = getPackageManager(); Intent testIntent = new Intent(Intent.ACTION_VIEW); testIntent.setType("application/pdf"); List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(file); intent.setDataAndType(uri, "application/pdf"); startActivity(intent); } } 

Por último al final declare persmissions en AndroidManifest.xml

 <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

Puede probar esto con WebView:

 public class MyPdfViewActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView mWebView=new WebView(MyPdfViewActivity.this); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setPluginsEnabled(true); mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+LinkTo); setContentView(mWebView); } } 

Según mí no hay manera de abrir directamente su archivo PDF en el dispositivo. Debido a las propiedades del navegador de dispositivos Android cuando tratamos de abrir el archivo PDF que descargar al dispositivo. Sólo hay dos formas de abrir el archivo PDF.

  1. Puede utilizar la aplicación PDF Intent para elegir la aplicación con la que abrir el archivo.

  2. Puede anexar su url del servidor para el archivo con url de docs de Google y puede abrirlo en el navegador para que el archivo PDF de ur se abra en el navegador

  • Imagen umbral con opencv (Java)
  • Asmack - recibir mensajes XML personalizados ||
  • Dagger 2 actividad inyección no funciona
  • Android: Establecer el parámetro de peso mediante programación hace lo contrario de lo que quiero
  • Android StringBody (String) está obsoleto
  • Emisor de infrarrojos y Android 5.0
  • Android Google Map marcador título en árabe mostrando en blanco
  • Arraylist con objetos personalizados
  • ¿Cómo devolver un valor de una clase interna?
  • Plantilla de diseño de Android
  • Cómo crear una sugerencia útil en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.