Android下载并打开pdf文件

下载并打开pdf文件,前提是手机上有可打开pdf文件的应用

System.out.println("我点击了按钮");
			String urlString = "http://public.dhe.ibm.com/common/ssi/ecm/en/wsd14109usen/WSD14109USEN.PDF";
			try {
				URL url = new URL(urlString);
				HttpURLConnection connection = (HttpURLConnection) 
						url.openConnection();
				connection.setRequestMethod("GET");
				connection.setDoInput(true);
				connection.setDoOutput(true);
				connection.setUseCaches(false);
				connection.setConnectTimeout(5000);
				connection.setReadTimeout(5000);
				//实现连接
				connection.connect();

				System.out.println("connection.getResponseCode()="+connection.getResponseCode());
				if (connection.getResponseCode() == 200) {
					InputStream is = connection.getInputStream();
					//以下为下载操作
					byte[] arr = new byte[1];
					ByteArrayOutputStream baos = new ByteArrayOutputStream();
					BufferedOutputStream bos = new BufferedOutputStream(baos);
					int n = is.read(arr);
					while (n > 0) {
						bos.write(arr);
						n = is.read(arr);
					}
					bos.close();
					String path = Environment.getExternalStorageDirectory()
							+ "/download/";
					String[] name = urlString.split("/");
					path = path + name[name.length - 1];
					System.out.println("name="+name);
					System.out.println("path="+path);
					File file = new File(path);
					FileOutputStream fos = new FileOutputStream(file);
					fos.write(baos.toByteArray());
					fos.close();
					//关闭网络连接
					connection.disconnect();
					System.out.println("下载完成");
		            if (file.exists()) {
	            	System.out.println("打开");
	                Uri path1 = Uri.fromFile(file);
	                Intent intent = new Intent(Intent.ACTION_VIEW);
	                intent.setDataAndType(path1, "application/pdf");
	                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

	                try {
	                    startActivity(intent);
	                } 
	                catch (ActivityNotFoundException e) {
	                	System.out.println("打开失败");
	                }
	            }
				}
			} catch (IOException e) {
				// TODO: handle exception
				System.out.println(e.getMessage());
			}

Tagged:

Comments are closed.