代码之家  ›  专栏  ›  技术社区  ›  ORHAN TOPDAĞ

拒绝访问路径“/storage/memulate/0/Android/data/companyname/files”

  •  0
  • ORHAN TOPDAĞ  · 技术社区  · 4 年前

    我想在安卓平台上读取xamarin.forms中的XML文件。我可以访问但无法打开它。当它打开时,会出现错误“拒绝访问路径'/storage/memulate/0/Android/data/companyname/files'”

    这是我的manifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.safaksayar">
        <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="25" />
    
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
      <uses-permission android:name="android.permission.VIBRATE" />
      <uses-permission android:name="android.permission.WAKE_LOCK" />
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      
      
      
        <application android:label="Safaksayar.Android"  >
    
    
          <receiver android:name=".BootReceiver" android:enabled="true">
            <intent-filter>
              <action android:name="android.intent.action.BOOT_COMPLETED"></action>
            </intent-filter>
          </receiver>
    
        </application>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      
    </manifest>
    

    我还将此代码块写入Mainactivity.cs的OnCreate()方法。

      var permissions = new string[] { Manifest.Permission.ReadExternalStorage, Manifest.Permission.WriteExternalStorage };
                    RequestPermissions(permissions, 77);
                    if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.WriteExternalStorage) != (int)Permission.Granted)
                    {
                        ActivityCompat.RequestPermissions(this, new string[] { Manifest.Permission.WriteExternalStorage }, 0);
                    }
        
                    if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.ReadExternalStorage) != (int)Permission.Granted)
                    {
                        ActivityCompat.RequestPermissions(this, new string[] { Manifest.Permission.ReadExternalStorage }, 0);
                    }
    

    这是我访问XML文件的代码。

    var folderPath = DependencyService.Get<IFileSystem>().GetExternalStorage();
    
    if (Device.OS == TargetPlatform.Android) {
    
                    using (System.IO.StreamReader reader = new System.IO.StreamReader(folderPath))
                    {
                        XmlSerializer serializer2 = new XmlSerializer(typeof(Fikralarhepsi));
                        var sounds = (Fikralarhepsi)serializer2.Deserialize(reader);
                    }
                }
    
    0 回复  |  直到 4 年前