Xamarin.Forms.Android 中访问外部内存方法
问题描述: 我想生成一个Excel文件到 /storage/emulated/0/Download 目录下, 然后报错说访问路径被拒绝.
解决方法: 添加访问所有文件权限
步骤1: AndroidManifest.xml 中添加
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
步骤2: MainActivity.cs 中添加
public bool CheckAppPermissions() { if ((int)Build.VERSION.SdkInt < 23) { return true; } if (!(ContextCompat.CheckSelfPermission(this, Manifest.Permission.WriteExternalStorage) == (int)Permission.Granted) && !(ContextCompat.CheckSelfPermission(this, Manifest.Permission.ReadExternalStorage) == (int)Permission.Granted)) { var permissions = new string[] { Manifest.Permission.ReadExternalStorage, Manifest.Permission.WriteExternalStorage }; ActivityCompat.RequestPermissions(this, permissions, 777); return false; } return true; }
步骤3: MainActivity.OnCreate 中 调用 CheckAppPermissions()
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); LoadApplication(new App()); CheckAppPermissions(); }
搞定.