Wątek przeniesiony 2023-10-05 12:04 z C# i .NET przez Riddle.

Zapis i odczyt plików

0

Witam,

Jakoś próbuję swoich sił w Xamarin.Forms. Wcześniej dłubałem głównie w Delphi w Sidney czy Tokio. Teraz mam jednak inne środowisko i inne potrzeby. Może ktoś coś zasugeruje ?
Sytuacja jest następująca jest sobie jakaś aplikacja używająca list definiowanych te listy definiowalne są w pliku tekstowym np xml lub zwykłym csv. Z tego co do tej pory doszukałem się, to można operować na folderach specjalnych typu Documents / Downoloads etc. Ale w rozumieniu aplikacji te foldery znajdują się wewnątrz pakietu aplikacji To co się znajduje jako plik np root-cie / lub /Documents pamięci wewnętrznej to jest albo nie widoczne albo brak uprawnień do odczytu. I tu przede wszystkim nie mam pojęcia czy nie widzi w ogóle pliku czy tylko chodzi o uprawnienia dostępu do danego folderu.
Prośba więc co mogę robić źle z punktu widzenia dostępu do folderu ? Lub jak powinno być wykonane poprawne mapowanie do folderu /Documents /Download w pamięci wewnętrznej telefonu ? Uprawnienia w AndroidManifest dodałem następujące ale to nic nie daje:

<?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.mtermdroid">
	<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />
	<application android:label="mTermDroid.Android" android:theme="@style/MainTheme"></application>
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
	<uses-permission android:name="android.permission.READ_SMS" />
	<uses-permission android:name="android.permission.RECEIVE_MMS" />
	<uses-permission android:name="android.permission.RECEIVE_SMS" />
	<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
	<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
</manifest>

Pozdrawiam,
Andrzej

0

Począwszy od Androida 11 obowiązuje "scoped storage".

Patrzyłeś na https://learn.microsoft.com/en-us/xamarin/android/platform/files/external-storage oraz na Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDocuments)?

Patrz też MediaStore: https://www.linkedin.com/pulse/using-xamarin-android-mediastore-part-1-keith-beatty/

1 użytkowników online, w tym zalogowanych: 0, gości: 1