private void ProcessAttachment() { if (Intent.Action.Equals(Intent.ActionView)) { try { Android.Net.Uri uri = Intent.Data; string scheme = uri.Scheme; string mimetype = ContentResolver.GetType(uri); if ((ContentResolver.SchemeFile == "file") && (mimetype == "application/octet-stream")) { startupByAttachment = true; System.IO.Stream stream = ContentResolver.OpenInputStream(uri); System.IO.StreamReader sr = new System.IO.StreamReader(stream); var serializer = new JsonSerializer(); using (var jst = new JsonTextReader(sr)) { message = serializer.Deserialize <SeriousWalletTransactionMessage>(jst); } } else { Finish(); } } catch (System.Exception e) { //@@todo write exception to log } } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource //SetContentView (Resource.Layout.Main); var dbUri = Intent.GetParcelableExtra("dbUri") as Uri; if (dbUri != null) { var mimeType = ContentResolver.GetType(dbUri); var returnCursor = ContentResolver.Query(dbUri, null, null, null, null); var nameIndex = returnCursor.GetColumnIndex(OpenableColumns.DisplayName); var sizeIndex = returnCursor.GetColumnIndex(OpenableColumns.Size); returnCursor.MoveToFirst(); var filename = returnCursor.GetString(nameIndex); var fileSize = returnCursor.GetString(sizeIndex); using (var stream = ContentResolver.OpenInputStream(dbUri)) { var length = int.Parse(fileSize); var buffer = new byte[length]; var contents = stream.Read(buffer, 0, length); var contentParsed = System.Text.Encoding.ASCII.GetString(buffer); } } }
public static byte[] GetSelectedMediaData(Activity activity, Android.Net.Uri uri) { try { string path = string.Empty; ContentResolver cr = activity.ContentResolver; string type = cr.GetType(uri); if (type.Contains("video")) { MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.SetDataSource(activity, uri); string duration = retriever.ExtractMetadata(MetadataKey.Duration); retriever.Release(); if (!string.IsNullOrEmpty(duration)) { if (Convert.ToInt32(duration) > 30000) { path = VideoHelper.Trim(1, 30000, VideoHelper.GetMediaRealPath(activity, uri)); return(System.IO.File.ReadAllBytes(path)); } } } var stream = activity.ContentResolver.OpenInputStream(uri); return(stream.ReadAsBytes()); } catch (System.Exception ex) { return(null); } }
public static void GetMetadataFromContentURI(this Android.Net.Uri uri, ContentResolver contentResolver, out long size, out string fileName) { using (var fd = contentResolver.OpenFileDescriptor(uri, "r")) size = fd.StatSize; using (var cursor = contentResolver.Query(uri, new string[] { Android.Provider.OpenableColumns.DisplayName }, null, null, null)) { cursor.MoveToFirst(); fileName = GetFixedFileName(cursor.GetString(0), contentResolver.GetType(uri)); } }
public byte[] GetImageData() { ClipboardManager clipboard = (ClipboardManager)Forms.Context.GetSystemService(Context.ClipboardService); ContentResolver cr = Forms.Context.ContentResolver; ClipData clip = clipboard.PrimaryClip; byte[] p = null; if (clip != null) { // Gets the first item from the clipboard data ClipData.Item item = clip.GetItemAt(0); // Tries to get the item's contents as a URI Android.Net.Uri pasteUri = item.Uri; // If the clipboard contains a URI reference if (pasteUri != null) { // Is this a content URI? String uriMimeType = cr.GetType(pasteUri); // If the return value is not null, the Uri is a content Uri if (uriMimeType != null) { // Does the content provider offer a MIME type that the current application can use? if (uriMimeType.StartsWith("image/")) { // Get the data from the content provider. ICursor pasteCursor = cr.Query(pasteUri, null, null, null, null); // If the Cursor contains data, move to the first record if (pasteCursor != null) { if (pasteCursor.MoveToFirst()) { p = pasteCursor.GetBlob(0); } } // close the Cursor pasteCursor.Close(); } } } } return(p); }
public string getMimeType(Android.Net.Uri uri) { string mime_type = null; if (uri.Scheme.Equals(ContentResolver.SchemeContent)) { ContentResolver cr = MainActivity.Instance.ContentResolver; mime_type = cr.GetType(uri); } else { string ext = MimeTypeMap.GetFileExtensionFromUrl(uri.ToString()); mime_type = MimeTypeMap.Singleton.GetMimeTypeFromExtension(ext.ToLower()); } if (mime_type == null) { mime_type = "*/*"; } return(mime_type); }
public static string GetMediaRealPath(Activity activity, Android.Net.Uri uri) { ContentResolver cr = activity.ContentResolver; string type = cr.GetType(uri); if (type.Contains("video")) { string[] projection = { MediaStore.Video.VideoColumns.Data }; var cursor = activity.ContentResolver.Query(uri, projection, null, null, null); if (cursor != null) { // HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL // THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA int column_index = cursor.GetColumnIndex(MediaStore.Video.VideoColumns.Data); cursor.MoveToFirst(); return(cursor.GetString(column_index)); } else { return(null); } } else if (type.Contains("audio")) { string[] projection = { MediaStore.Audio.AudioColumns.Data }; var cursor = activity.ContentResolver.Query(uri, projection, null, null, null); if (cursor != null) { // HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL // THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA int column_index = cursor.GetColumnIndex(MediaStore.Audio.AudioColumns.Data); cursor.MoveToFirst(); return(cursor.GetString(column_index)); } else { return(null); } } return(null); }
private void LoadMedia(Android.Net.Uri uri) { //string[] nameParts = path.Split (".".ToCharArray ()); //string filetype = nameParts [nameParts.Length - 1]; //string filetype = nameParts[nameParts.Length - 1]; //might be whole filename... //http://stackoverflow.com/questions/12473851/how-i-can-get-the-mime-type-of-a-file-having-its-uri ContentResolver cR = this.ContentResolver; //MimeTypeMap mime = MimeTypeMap.Singleton; string filetype = cR.GetType(uri); aCrossHairView.locationArr.Clear(); aCrossHairView.Invalidate(); //resultTextView.SetText (Resource.String.resultTextView_title); scaleButton.Enabled = true; computeButton.Enabled = false; switch (filetype.Split('/')[0]) { case "video": vView.SetVideoURI(uri); mediaUri = uri; iView.Visibility = ViewStates.Invisible; vView.Visibility = ViewStates.Visible; playButton.Enabled = true; break; case "image": iView.SetImageURI(uri); mediaUri = uri; iView.Visibility = ViewStates.Visible; vView.Visibility = ViewStates.Invisible; playButton.Enabled = false; break; default: Console.WriteLine(filetype); break; } }
public bool CheckType(ContentResolver resolver, Uri uri) { MimeTypeMap map = MimeTypeMap.Singleton; if (uri == null) { return(false); } string type = map.GetExtensionFromMimeType(resolver.GetType(uri)); foreach (string extension in mExtensions) { if (extension.Equals(type)) { return(true); } string path = PhotoMetadataUtils.GetPath(resolver, uri); if (path != null && path.ToLower().EndsWith(extension)) { return(true); } } return(false); }
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent intent) { base.OnActivityResult(requestCode, resultCode, intent); if (requestCode == PickImageId) { try { if ((resultCode == Result.Ok) && (intent != null)) { Android.Net.Uri uri = intent.Data; Stream stream = ContentResolver.OpenInputStream(uri); string extension = MimeTypeMap.Singleton.GetExtensionFromMimeType(ContentResolver.GetType(uri)); // Set the result as the completion of the Task PickImageTaskCompletionSource.SetResult(new PickImageResult() { Stream = stream, Extension = extension }); } else { PickImageTaskCompletionSource.SetResult(null); } } catch (Exception ex) { PickImageTaskCompletionSource.SetException(ex); } } }
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent intent) { base.OnActivityResult(requestCode, resultCode, intent); if (requestCode == PickImageId) { if (PickImageTaskCompletionSource == null) { TelemetryExtension.Current?.TrackException(new InvalidOperationException("PickImageTaskCompletionSource was null, app must have dehydrated while picking images")); return; } PickImageResult result; try { if ((resultCode == Result.Ok) && (intent != null)) { Android.Net.Uri uri = intent.Data; Stream stream = ContentResolver.OpenInputStream(uri); string extension = MimeTypeMap.Singleton.GetExtensionFromMimeType(ContentResolver.GetType(uri)); result = new PickImageResult() { Stream = stream, Extension = extension }; } else { result = null; } } catch (Exception ex) { try { PickImageTaskCompletionSource.SetException(ex); } catch { TelemetryExtension.Current?.TrackException(ex); } return; } // Set the result as the completion of the Task try { PickImageTaskCompletionSource.SetResult(result); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } } }