📜  存储权限 android - Java (1)

📅  最后修改于: 2023-12-03 15:25:03.882000             🧑  作者: Mango

存储权限 Android - Java

在 Android 应用程序中,存储权限是一项非常重要的权限。它允许应用程序读取和写入用户设备上的存储空间,包括内部存储和外部存储(例如 SD 卡)。没有此权限,应用程序无法访问存储空间,这将导致应用程序无法正常工作。

申请存储权限

Android 系统要求开发者在应用程序中明确请求需要使用的权限。要请求存储权限,请按如下所示在 AndroidManifest.xml 文件中添加以下代码:

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

当应用程序需要访问存储空间时,需要检查应用程序是否已被授权。以下代码演示如何请求存储权限:

if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.READ_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {

            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.READ_EXTERNAL_STORAGE)) {

            } else {

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

            }
        }

该代码会检查是否已授权访问存储权限。如果没有,则会弹出对话框,请求用户授权。

获取存储权限

当用户授权应用程序访问存储空间时,应用程序需要执行必要的操作。以下代码演示如何获取存储权限:

@Override
public void onRequestPermissionsResult(int requestCode,
        String permissions[], int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE: {
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                // permission was granted
            } else {

                // permission denied
            }
            return;
        }
    }
}

当用户授权应用程序访问存储空间时,将调用此方法。如果已授权,则应用程序将执行必要的操作。否则,应用程序将无法访问存储器。

总结

存储权限是 Android 应用程序的一个重要权限。应用程序可以使用存储权限读取和写入设备上的存储空间。在请求存储权限时,应用程序需要检查是否已授权访问存储空间,并在获取授权后执行必要的操作。