EACCES(PERMISSION DENIED)读取简单文件txt

时间:2016-07-18 13:27:48

标签: android android-layout android-fragments

         File myFile = new File(PathFileToRead);

            FileInputStream fIn = new FileInputStream(myFile);
            BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));

我使用此代码来读取文件,但可能在最后一次系统更新时,我无权这样做。你能帮助我吗?

提前致谢

4 个答案:

答案 0 :(得分:0)

你需要根据android

中新的Marshmallow更新实现https://developer.android.com/training/permissions/requesting.html

答案 1 :(得分:0)

在清单中添加读取权限

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

如果您在Marshmallow上,则需要使用运行时权限请求

答案 2 :(得分:0)

如果您添加了以下行,则在清单文件中签出 -

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

另外,还要检查是否添加了Marshmallow的运行时检查以获得许可。有关如何使用它的详细信息,您可以通过here进行检查。

答案 3 :(得分:0)

我在下面的代码中加入了我的MainActivity,我解决了这个问题。非常感谢

ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);

public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], int[] grantResults) {
    switch (requestCode) {
        case 1: {
            // If request is cancelled, the result arrays are empty.

            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {


        /*HERE PERMISSION IS ALLOWED.
        *
        * YOU SHOULD CODE HERE*/


            } else {

                Toast.makeText(MainActivity.this, "Permission deny to read your External storage", Toast.LENGTH_SHORT).show();
            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
}