.NET MAUI espone le funzioni del dispositivo con API comuni a tutte le piattaforme: posizione, fotocamera, file, connettività, informazioni sul dispositivo. Prima di usarle, però, servono i permessi.
Chiedere un permesso
public async Task<Location?> PosizioneAttualeAsync()
{
var stato = await Permissions.CheckStatusAsync<Permissions.LocationWhenInUse>();
if (stato != PermissionStatus.Granted)
stato = await Permissions.RequestAsync<Permissions.LocationWhenInUse>();
if (stato != PermissionStatus.Granted)
return null; // l'utente ha rifiutato: l'app deve continuare a funzionare
return await Geolocation.Default.GetLocationAsync(
new GeolocationRequest(GeolocationAccuracy.Medium, TimeSpan.FromSeconds(10)));
}
Su Android e iOS i permessi vanno anche dichiarati nei file della piattaforma (AndroidManifest.xml e Info.plist), con una spiegazione chiara del motivo: gli store la controllano.
Scegliere una foto
var foto = await MediaPicker.Default.PickPhotoAsync();
if (foto is not null)
{
await using var flusso = await foto.OpenReadAsync();
await _upload.InviaAsync(flusso, foto.FileName);
}
Connettività
if (Connectivity.Current.NetworkAccess != NetworkAccess.Internet)
{
await Shell.Current.DisplayAlert("Offline", "I dati verranno inviati appena torni online.", "OK");
}
Buone pratiche
- Chiedi i permessi solo quando servono, nel contesto in cui l'utente capisce perché.
- Gestisci sempre il rifiuto: l'app non deve bloccarsi.
- Per funzioni non coperte dalle API comuni, usa codice specifico per piattaforma nelle cartelle
Platformso classi parziali.
Commenti (0)
Nessun commento ancora.