KitKat 4.2和Nougat 7.1.1之间的文件系统访问有何不同?

时间:2018-10-22 02:21:49

标签: android android-4.4-kitkat android-7.1-nougat filesystem-access

我有一个几年前开发的HTMLSpyII应用程序,当时我还是Android编程的绝对初学者。无论如何,这是几年后的事,这段时间我一直没有编程,它已经在我的Samsung S4 mini KitKat 4.4.2上运行,但是不会在我的Samsung Tab E Nougat 7.1.1上运行。我确定我缺少一些简单的东西。

程序正在设备的Downloads目录中创建目录/ HTMLSpyII / Jsoup。它从以下代码段的最后一行输出此两行的runTimeAlert ...
无法创建路径
/ storage / emulated / 0 / Download / HTMLSpyII / Jsoup

这是代码段,它是onCreate ...的一部分

    private File root;
    private String urlString, tokenString;
    private EditText url, token;
    ...
 root = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_DOWNLOADS + "/HTMLSpyII/Jsoup");
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            urlString = extras.getString("urlKey");
            url.setText(urlString);
            tokenString = extras.getString("tokenKey");
            token.setText(tokenString);
            if (getIntent().hasExtra("redirectsKey"))
                followRedirects = extras.getBoolean("redirectsKey");
            else
                followRedirects = true;
            if (getIntent().hasExtra("rootKey"))
                root = new File (extras.getString("rootKey"));
        }
        if (!root.exists()) root.mkdirs();
        if (!root.isDirectory())
            runTimeAlert("Unable to create path\n" + root.toString())

希望您能提供帮助:)

1 个答案:

答案 0 :(得分:0)

我终于发现,我的问题的答案涉及在运行时检查权限。这对我来说是新的。  Tarun在此StackOverflow帖子中提供了答案...
Android marshmallow request permission?
塔伦(Tarun)的答案很低,因此通过在帖子中搜索塔伦(Tarun)这个名字最容易找到答案。在这里也发现... http://revisitingandroid.blogspot.com/2017/01/how-to-check-and-request-for-run-time.html