我再次调用SO的力量!
对此代码有例外:
string filePath = "/sdcard/Download/test.txt";
using (StreamWriter stream = File.CreateText(filePath))
{
//stuff that is currently never done
}
" File.CreateText"在运行时生成以下错误:
UnauthorizedAccessException
我已查看我的AndroidManifest
:" WRITE_EXTERNAL_STORAGE
"和" READ_EXTERNAL_STORAGE
"已指定。
我也试过使用" Environment.ExternalStorageDirectory
"而不是当前路径,导致相同的错误。
诀窍是这个代码在另一个解决方案中工作。所以问题必须来自我的设置。哪一个可能是问题的根源?
答案 0 :(得分:0)
Aaaaaa这里是答案:
代码很好,这是一个权限问题。我的测试代码在Android Lollypop下,但后来我在Android Marshmallow下使用了这个代码,在工作应用程序中。
在Marshmallow上,您需要在运行时明确指定一些重要权限,例如BLUETOOTH
,BLUETOOTH_ADMIN
....或WRITE_EXTERNAL_STORAGE
。
以下是OnCreate
中添加的行:
string[] Permissions = { Android.Manifest.Permission.WriteExternalStorage };
int RequestLocationId = 0;
RequestPermissions(Permissions, RequestLocationId);
您可以通过回调OnRequestPermissionResult
了解用户是否接受了该权限。
以下是android dev的相关文章:
https://developer.android.com/training/permissions/requesting.html