对于/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