3 回答
TA贡献1802条经验 获得超4个赞
没错,SD卡目录位于其中,/sdcard但您不应该对其进行硬编码。而是调用Environment.getExternalStorageDirectory()来获取目录:
File sdDir = Environment.getExternalStorageDirectory();
如果尚未执行此操作,则需要在清单中添加以下行,以授予您的应用正确的写入SD卡的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
TA贡献1829条经验 获得超4个赞
Dave答案中上面建议的技术无疑是一种好的设计实践,是的,最终必须在AndroidManifest.xml文件中设置所需的权限才能访问外部存储。
但是,添加大多数(如果不是全部,不确定)“清单选项”的单式方式是通过实现活动(或服务)的类的属性来实现的。
Visual Studio Mono插件会自动生成清单,因此最好不要手动对其进行篡改(我相信在某些情况下没有其他选择)。
例如:
[Activity(Label="MonoDroid App", MainLauncher=true, Permission="android.permission.WRITE_EXTERNAL_STORAGE")]
public class MonoActivity : Activity
{
protected override void OnCreate(Bundle bindle)
{
base.OnCreate(bindle);
}
}
TA贡献1820条经验 获得超10个赞
实际上,我现在看到此WRITE_EXTERNAL_STORAGE设置是用户权限,如果按上述方式进行设置,它将在清单文件中显示为活动设置(android:permission),而不是用户权限。哦,我刚刚记得,您在VS中为用户权限用户设置了项目属性(它是所有权限的复选框列表)。
添加回答
举报