Android 存储权限
时间: 2023-10-03 18:08:35 浏览: 233
在 Android 中,使用存储权限可以让应用程序访问设备的文件系统,包括读取和写入文件。为了使用存储权限,您需要在 AndroidManifest.xml 文件中声明相应的权限。以下是声明存储权限的示例:
```
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
...
</application>
</manifest>
```
在 Android 6.0 及以上版本中,存储权限被称为运行时权限,需要在应用程序运行时请求用户授权。您可以使用以下代码请求存储权限:
```
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
}
```
当用户授权或拒绝权限请求时,将调用 onRequestPermissionsResult() 方法。您可以在此方法中检查用户是否授权了所需的权限:
```
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授予
} else {
// 权限被拒绝
}
return;
}
}
}
```
请注意,为了保护用户的个人数据,您应该只请求应用程序需要的最少权限。在您的应用程序中使用存储权限时,请遵循最佳实践,例如仅访问应用程序专用目录,而不是整个文件系统。
阅读全文