允许写入SD卡

我希望我的应用程序将应用程序数据库归档到SD卡。在我的代码中,我检查目录是否canWrite()存在,如果不存在,则抛出IOException。在此特定情况下,我尝试将db文件复制到SD卡上的根目录,但是会抛出IOException。如何更改文件夹/文件的权限以能够写入?



杨魅力
浏览 680回答 3
3回答

慕虎7371278

没错,SD卡目录位于其中,/sdcard但您不应该对其进行硬编码。而是调用Environment.getExternalStorageDirectory()来获取目录:File sdDir = Environment.getExternalStorageDirectory();如果尚未执行此操作,则需要在清单中添加以下行,以授予您的应用正确的写入SD卡的权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

浮云间

Dave答案中上面建议的技术无疑是一种好的设计实践,是的,最终必须在AndroidManifest.xml文件中设置所需的权限才能访问外部存储。但是,添加大多数(如果不是全部,不确定)“清单选项”的单式方式是通过实现活动(或服务)的类的属性来实现的。Visual Studio Mono插件会自动生成清单,因此最好不要手动对其进行篡改(我相信在某些情况下没有其他选择)。例如:[Activity(Label="MonoDroid App", MainLauncher=true, Permission="android.permission.WRITE_EXTERNAL_STORAGE")]public class MonoActivity : Activity{&nbsp; protected override void OnCreate(Bundle bindle)&nbsp; {&nbsp; &nbsp; base.OnCreate(bindle);&nbsp; }}

拉莫斯之舞

实际上,我现在看到此WRITE_EXTERNAL_STORAGE设置是用户权限,如果按上述方式进行设置,它将在清单文件中显示为活动设置(android:permission),而不是用户权限。哦,我刚刚记得,您在VS中为用户权限用户设置了项目属性(它是所有权限的复选框列表)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Android