android 文件访问权限处理


对于/storage/emulated/0没没有权限访问的问题进行如下解决:

1、加入文件读写、和存储管理权限 READ_EXTERNAL_STORAGE  MANAGE_EXTERNAL_STORAGE  requestLegacyExternalStorage

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.helloworld">
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:requestLegacyExternalStorage="true"
        android:theme="@style/Theme.HelloWorld">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.HelloWorld.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

2、代码中动态获取

Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
                    startActivity(intent);

3、读取相关文件

                try {

                    InputStream is = new FileInputStream(new File("/storage/emulated/0/Pictures/hello.txt"));
                        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
                    String buffer;
                    while ((buffer = bufferedReader.readLine()) != null) {
                        Log.i(TAG, "read line:" + buffer);
                    }
                } catch (Exception e) {
                    Log.i(TAG, "error msg:" + e.getMessage());
                }

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/280676.html

(0)
上一篇 2022年8月15日 12:27
下一篇 2022年8月15日 13:24

相关推荐

发表回复

登录后才能评论