有一个问题困扰了我好几天了。目前我在Android2.2上运行"设置"的源代码。
在AdroidMenifest.xml中我们可以看到:
android:sharedUserId="android.uid.system"
有了这个,可以访问设置中的活动的许多权限。但是用这句话,sd卡不能读/写访问,我已经尝试读取目录
中的文件File f = new File("/mnt/sdcard/"+filename);
或
File f = new File("/sdcard/"+filename);
但是它们都不起作用,我得到一个异常告诉我文件不存在(我已经把文件放在那里了)。
如果我删除android:sharedUserId="android.uid.system"
,那么我可以成功访问该文件。然而,我需要android:sharedUserId="android.uid.system"
使其他活动顺利进行。
有没有人碰巧遇到同样的问题,你解决了吗?谢谢!
系统用户不能访问SD卡,因为如果SD卡被卸载,它可能需要杀死所有在其上打开文件的进程,我们不希望系统进程像这样被杀死。如果要访问SD卡,请不要使用系统共享用户ID。