首页 > 解决方案 > 拒绝访问路径“/data/user/0/com.companyname.hidden_​​wiretapping/files”。

问题描述

下午好,请帮我弄清楚,我想将我的录音保存到外部存储,我授予了对 android.manifest 的访问权限,并且还请求用户许可(CheckPermisissions),但我无法访问录音

这是我的宣言

    <?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.hidden_wiretapping" android:installLocation="preferExternal">
    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="30" />
    <application   android:label="Hidden_Wiretapping.Android" android:theme="@style/MainTheme"></application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
</manifest>

这是我试图将录音保存到文件夹的代码

 private async void Start_Clicked(object sender, EventArgs e)
        {
            

            if (!audioRecorderService.IsRecording)
            {

                var mainDir = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                var PermissionsStrorage = await Permissions.CheckStatusAsync<Permissions.StorageWrite>();
                var PermissionsMicrophone = await Permissions.CheckStatusAsync<Permissions.Microphone>();
                if (PermissionsStrorage != PermissionStatus.Granted && PermissionsMicrophone != PermissionStatus.Granted)
                {
                    PermissionsStrorage = await Permissions.RequestAsync<Permissions.StorageWrite>();
                    PermissionsMicrophone = await Permissions.RequestAsync<Permissions.Microphone>();
                }
                if (PermissionsStrorage != PermissionStatus.Granted && PermissionsMicrophone != PermissionStatus.Granted)
                {
                    return;
                }
                    var file = Path.Combine(mainDir, "count.txt");
                    File.Create(file);
                    
                    audioRecorderService.TotalAudioTimeout = TimeSpan.FromSeconds(3);
                    audioRecorderService.FilePath = mainDir;
                    await audioRecorderService.StartRecording();
                    Start.TextColor = Color.Blue;
              
              

            }
            else
            {
                await audioRecorderService.StopRecording();
                Start.TextColor = Color.Red;
                
            }
        }

我添加了 logcat

java.io.FileNotFoundException: /data/user/0/com.google.android.apps.messaging/files/rcsconfig (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:231)
    at java.io.FileInputStream.<init>(FileInputStream.java:165)
    at android.app.ContextImpl.openFileInput(ContextImpl.java:560)
    at android.content.ContextWrapper.openFileInput(ContextWrapper.java:202)
    at ion.a(SourceFile:2)
    at idl.a(SourceFile:4)
    at idm.a(SourceFile:7)
    at com.google.android.apps.messaging.rcsmigration.RcsStateProvider.buildRcsState(SourceFile:81)
    at com.google.android.apps.messaging.rcsmigration.RcsStateProvider.getRcsState(SourceFile:6)
    at com.google.android.ims.rcsmigration.IRcsStateProvider$Stub.dispatchTransaction(SourceFile:10)
    at com.google.android.aidl.BaseStub.onTransact(SourceFile:18)
    at android.os.Binder.execTransact(Binder.java:731)

标签: c#androidxamarinxamarin.formsstorage

解决方案


推荐阅读