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

  • Android - Instalación de Apache Commons VFS - Problemas
  • SetMaxDate () no funciona perfectamente en Lollipop 5.0.1 android y necesita una solución adecuada
  • Hex to String en Java El rendimiento es demasiado lento
  • Ping de ICMP de Android
  • Pruebas con Dagger 2 usando configuraciones de componentes independientes en Android
  • Iconos de ActionBar con diferentes tamaños
  • Cómo detener ProGuard de eliminar la interfaz Serializable de una clase
  • Spring MVC, Thymeleaf y REST
  • ¿Cómo saber si una coordenada X e Y están dentro de mi botón?
  • Alinear el centro de texto con android
  • Margen entre las etiquetas del título del eje X y del eje X en AChartEngine
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.