VS2017 Xamarin.Essential használata
2022-07-30T22:17:55+02:00
2022-07-30T22:17:55+02:00
2022-07-30T22:41:54+02:00
strasszer
Irtam egy alkalmazást korábban Xamarin-ban Android 7-re. Tökéletesen működik.
A felhasználók áttértek Android 10-re, és az alkalmazásom egy ponton elszállt. Kidebugoltam, és megtaláltam az okot:
Van egy gomb, ha azt a user megnyomja, akkor elindul a default Email kliens, kitöltöm a megfelelő adatokkal, hozzácsatolok egy file-t, a user pedig elküldi a levelet.
A gond a file csatolásával van.
hibaüzenet: exposed beyond app through ClipData.Item.getUri() occurred
Arra már rátaláltam, hogy a Google megváltoztatta a file átadás metódusát két Intent között. Az URI már nem támogatott.
Azt is megtaláltam, ha a Xamarin.Essentil-t használom, akkor ezt meg tudom csinálni.

És a probléma itt kezdődik:
Bizonyos okokból magasabb verziójú Android SDK-t nem tudok feltenni a gépemre. 8.1 a maximum. Ha felteszem erre az Essential NuGet-et, akkor nem ismeri fel a Platform.Init, márpedig enélkül nem tud dolgozni az Essential.
Második megoldásként egy másik gépemre feltettem a VS2022-t. Itt már megvan az Essential.Platform.Init(), de a Download folderben nem tudok megnyitni olvasásra egy file-t, pedig ez lényeges a futáshoz. Ami furcsa, a File.Exists() észreveszi, hogy a file létezik. Csak olvasásra megnyitni nem tudom.

Tudom, hogy egy topic egy kérdés, most mégis kettőt kérdezek, mert csak az egyik megvalósitást akarom megcsinálni...
1. Mit kell használnom az URI helyett file átadáskor VS2017-ben (Android 8.1)
2. Milyen jogosultság kell VS2022-ben (Android 10), hogy meg tudjak nyitni egy file-t olvasásra a Download könyvtárban.
Mutasd a teljes hozzászólást!

abcd