0

我正在尝试使用以下代码从 SD 卡写入/读取:

     try {
    File sdcard = Environment.getExternalStorageDirectory();
    File file = new File(sdcard,INITIAL_FILE_NAME);

        if (!file.exists()) {
            file.createNewFile();
        }
     }
    catch (IOException e) {
       Log.e("TAG",e.getMessage());
    }

在清单中,我给予以下许可:

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

但是,在尝试阅读时,出现以下异常:

     open failed: EACCES (Permission denied)

我正在为我的应用程序系统权限(用于其他需要的任务)提供

     android:sharedUserId = "android.uid.system"

当我删除权限时,我可以访问 sdcard。由于某种原因,系统权限与从 sdcard 读取/写入冲突。

有人可以告诉我这背后的原因吗?有没有办法同时管理两者?

4

1 回答 1

0

在请求卸载后继续在 SD 卡上保留打开文件夹的进程将被终止,以便可以卸载。

我们不希望系统进程能够访问 SD 卡以避免此类问题(并且只是一般的安全清洁),因此它没有访问它的权限。

如果要访问 SD 卡,则不应使用系统共享用户 ID。

于 2014-06-21T19:28:55.160 回答