小编Jij*_*ijo的帖子

从url下载pdf然后用pdf阅读器打开它

我正在尝试编写一个应用程序从url下载pdf,将它们存储在sd上,然后由adobe pdf reader或其他能够打开pdf的应用程序打开.

直到现在,我已经"成功下载并将其存储在Sd卡上"(但每当我尝试使用pdf阅读器打开pdf时,阅读器崩溃并发出意外错误),例如,http://maven.apache.组织/ Maven的1.x中/ maven.pdf

这是我的下载程序的代码:

//........code set ui stuff
//........code set ui stuff
     new DownloadFile().execute(fileUrl, fileName); 


private class DownloadFile extends AsyncTask<String, Void, Void>{

        @Override
        protected Void doInBackground(String... strings) {
            String fileUrl = strings[0];   // -> http://maven.apache.org/maven-1.x/maven.pdf
            String fileName = strings[1];  // -> maven.pdf
            String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
            File folder = new File(extStorageDirectory, "testthreepdf");
            folder.mkdir();

            File pdfFile = new File(folder, fileName);

            try{
                pdfFile.createNewFile();
            }catch (IOException e){
                e.printStackTrace();
            }
            FileDownloader.downloadFile(fileUrl, pdfFile);
            return null;
        }
    }



public class FileDownloader { …
Run Code Online (Sandbox Code Playgroud)

pdf android download httpurlconnection fileinputstream

34
推荐指数
3
解决办法
8万
查看次数

正确检测Android设备类型

有没有办法精确检测设备类型(手机,平板电脑,手表,电视,汽车,PC)?

现在,我找到了一种方法来检测应用程序是在汽车(uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_CAR),电视(uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION)或手表(uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_WATCH)上运行.这是对的吗?连接到汽车的手机是显示为手机还是"Android Auto"?

为了区分手机,平板电脑或计算机,我可以检查最小屏幕尺寸(600dp,例如平板电脑或笔记本电脑).

现在的问题是区分平板电脑和笔记本电脑.你有什么想法吗?

PS:我不是要求它制作响应式用户界面,这是一个与帐户设备管理相关的问题

android

25
推荐指数
4
解决办法
1万
查看次数