Не могу получить доступ к внешним файлам. BlockGuard проблема с file.exists - PullRequest
0 голосов
/ 13 апреля 2019

Попытка чтения / записи текстового файла на / с ПК. Доступ к SD-карте не работает. Отладчик попадает в file.exists (), затем он попадает в BlockGuard что-то ???

Android Studio 3.3.2 Сборка № AI-182.5107.16.33.5314842, построена 15 февраля 2019 г. JRE: 1.8.0_152-release-1248-b01 amd64 JVM: 64-битная серверная виртуальная машина OpenJDK от JetBrains s.r.o Windows 10 10.0

код:

public int write(String fname, String fcontent){
    if ((fcontent == null)||(Objects.equals(fcontent, ""))) return 1; //nothing to write
    try {
    File file = new File(fname);
    // If file does not exists, then create it
    try {
        if (!file.exists()) 
        file.createNewFile();
    } catch (SecurityException e) {
        return 2;
    }
    FileWriter fw = new FileWriter(file.getAbsoluteFile());
    BufferedWriter bw = new BufferedWriter(fw);
    bw.write(fcontent);
    bw.close();
    Log.d("Success","Success");
    return 0;
    } catch (IOException e) {
    if (e.getMessage() == "Permission denied" )
        return 3;
    else {
        e.printStackTrace();
        return -1;
    }
    }
}

И мой манифест Android теперь показывает дубликаты ключей для разрешений:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="cjg.paycheck">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_label"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:fullBackupContent="@xml/backup_descriptor"
        tools:ignore="GoogleAppIndexingWarning">
        <activity android:name="cjg.paycheck.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Дальнейшие исследования показали, что файлы SDCard, сохраненные в Android, не видны при перемещении SDCARD на ПК, файлы, сохраненные на ПК, не видны в Android, когда SDCard возвращаются в телефон ???

...