public async void AddAudio() { if (((App)App.Current).AudioRecording != null) { var recording = new MediaFileModel(((App)App.Current).AudioRecording.Path, LocalRecordId, MediaFileModel.MediaType.Audio); SelectedMedia.Add(recording); OnPropertyChanged(nameof(SelectedMedia)); ((App)App.Current).AudioRecording = null; } }
private async Task SelectAudio() { var statusStorage = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage); if (statusStorage != PermissionStatus.Granted) { if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Storage)) { await Application.Current.MainPage.DisplayAlert("Benötige Speicher-Berechtigung", "Zum Speichern von Fundmeldungen, Bildern und Audiodateien wird die Speicher-Berechtigung benötigt.", "Okay"); } var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage }); statusStorage = results[Permission.Storage]; } if (statusStorage == PermissionStatus.Granted) { var allowedType = new string[1]; switch (Device.RuntimePlatform) { case Device.Android: allowedType[0] = "audio/*"; break; case Device.iOS: allowedType[0] = "UTType.Audio"; break; default: break; } var fileData = await CrossFilePicker.Current.PickFile(allowedType); if (fileData == null) { return; // user canceled file picking } var fileHelper = DependencyService.Get <IFileHelper>(); var file = fileHelper.CopyFileToApp(fileData.FilePath); SelectedMedia.Add(new MediaFileModel(file.Path, LocalRecordId, MediaFileModel.MediaType.Audio)); SetMediaHeight(); } }
private async Task SelectPhoto() { try { var statusPhotos = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Photos); var statusStorage = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage); if (statusPhotos != PermissionStatus.Granted) { if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Photos)) { await Application.Current.MainPage.DisplayAlert("Benötige Foto-Berechtigung", "Zum Auswählen von Bildern wird die Foto-Berechtigung benötigt.", "Okay"); } var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Photos }); statusPhotos = results[Permission.Photos]; } if (statusStorage != PermissionStatus.Granted) { if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Storage)) { await Application.Current.MainPage.DisplayAlert("Benötige Speicher-Berechtigung", "Zum Speichern von Bildern und Fundmeldungen wird die Speicher-Berechtigung benötigt.", "Okay"); } var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage }); statusStorage = results[Permission.Storage]; } if (statusPhotos == PermissionStatus.Granted && statusStorage == PermissionStatus.Granted) { await CrossMedia.Current.Initialize(); var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions { PhotoSize = PhotoSize.Medium, }); if (file != null) { var fileHelper = DependencyService.Get <IFileHelper>(); var copyMedia = fileHelper.CopyFileToApp(file.Path); SelectedMedia.Add(new MediaFileModel(copyMedia.Path, LocalRecordId, MediaFileModel.MediaType.Image)); SetMediaHeight(); } } else if (statusPhotos != PermissionStatus.Unknown && statusStorage != PermissionStatus.Unknown) { await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigungen können keine Bilder aufgenommen und die Fundmeldung nicht gespeichert werden.", "Okay"); } else if (statusPhotos != PermissionStatus.Unknown) { await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigung können keine Bilder ausgewählt werden.", "Okay"); } else if (statusStorage != PermissionStatus.Unknown) { await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigung kann die Fundmeldung nicht gespeichert werden.", "Okay"); } } catch (Exception ex) { Debug.WriteLine(ex.Message); } }
private async Task TakePhoto() { try { var statusCamera = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera); var statusStorage = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage); if (statusCamera != PermissionStatus.Granted) { if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Camera)) { await Application.Current.MainPage.DisplayAlert("Benötige Kamera-Berechtigung", "Zum Aufnehmen von Bildern wird die Kamera-Berechtigung benötigt.", "Okay"); } var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Camera }); statusCamera = results[Permission.Camera]; } if (statusStorage != PermissionStatus.Granted) { if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Storage)) { await Application.Current.MainPage.DisplayAlert("Benötige Speicher-Berechtigung", "Zum Speichern von Bildern und Fundmeldungen wird die Speicher-Berechtigung benötigt.", "Okay"); } var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage }); statusStorage = results[Permission.Storage]; } if (statusCamera == PermissionStatus.Granted && statusStorage == PermissionStatus.Granted) { await CrossMedia.Current.Initialize(); var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions { Directory = "", Name = string.Format("IMG_{0}", DateTime.Now.ToString("yyyyMMdd_HHmmss")) }); if (file != null) { SelectedMedia.Add(new MediaFileModel(file.Path, LocalRecordId, MediaFileModel.MediaType.Image)); SetMediaHeight(); } } else if (statusCamera != PermissionStatus.Unknown && statusStorage != PermissionStatus.Unknown) { await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigungen können keine Bilder aufgenommen und die Fundmeldung nicht gespeichert werden.", "Okay"); } else if (statusCamera != PermissionStatus.Unknown) { await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigung können keine Bilder aufgenommen werden.", "Okay"); } else if (statusStorage != PermissionStatus.Unknown) { await Application.Current.MainPage.DisplayAlert("Berechtigung verweigert", "Ohne Berechtigung kann die Fundmeldung nicht gespeichert werden.", "Okay"); } } catch (Exception ex) { Debug.WriteLine(ex.Message); } }