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();
        }

搞定.

posted @ 2023-03-10 16:39  妖言惑众'  阅读(108)  评论(0)    收藏  举报