type style password keyboards formattedtext entry c# android android-activity xamarin xamarin.android

c# - style - Obtener actividad actual-Xamarin Android



xamarin forms keyboards (2)

Estoy desarrollando una aplicación portátil para Android e iOS. Mi función actual es tomar una captura de pantalla y usar esa imagen en el código. Por lo tanto, tengo una interfaz en la biblioteca portátil.

public interface IFileSystemService { string GetAppDataFolder(); }

Estoy tomando la captura de pantalla también en la Biblioteca portátil con el siguiente código:

static public bool TakeScreenshot() { try { byte[] ScreenshotBytes = DependencyService.Get<Interface.IScreenshotManager>().TakeScreenshot(); return true; } catch (Exception ex) { } return false; }

Esto llama a la versión de Android o iOS.

Androide:

class ScreenshotManagerAndroid : IScreenshotManager { public static Activity Activity { get; set; } public byte[] TakeScreenshot() { if (Activity == null) { throw new Exception("You have to set ScreenshotManager.Activity in your Android project"); } var view = Activity.Window.DecorView; view.DrawingCacheEnabled = true; Bitmap bitmap = view.GetDrawingCache(true); byte[] bitmapData; using (var stream = new MemoryStream()) { bitmap.Compress(Bitmap.CompressFormat.Png, 0, stream); bitmapData = stream.ToArray(); } return bitmapData; }

La pregunta ahora es obtener la Actividad actual de mi aplicación.


Intente hacer var view = ((Activity)Xamarin.Forms.Forms.Context).Window.DecorView;

Xamarin asigna automáticamente la Activity a Forms.Context .


var activity = (Activity)Forms.Context;

o si está utilizando MainActivity

var activity = (MainActivity)Forms.Context;