Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

441
Visualizações
Obtener actividad actual - Xamarin Android

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.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Una mejor manera sería usar el complemento de actividad actual independiente o la propiedad de actividad actual en el complemento de Xamarin Essentials . Entonces podrías simplemente hacer:

  • Independiente: CrossCurrentActivity.Current.Activity
  • Fundamentos de Xamarin: Platform.CurrentActivity

Si no desea usar un complemento y solo tiene 1 Activity en su aplicación, puede salirse con la suya asignando una variable estática en MainActivity y haciendo referencia a eso donde sea que lo necesite de esta manera:

 public class MainActivity : FormsApplicationActivity { public static Context Context; public MainActivity () { Context = this; } }

Si necesita Context dentro de un renderizador personalizado, querrá usar el Context pasado al constructor, así:

 public class MyEntryRenderer : EntryRenderer { private readonly Context _context; public MyEntryRenderer(Context context) : base(context) { _context = context; } // Now use _context or ((Activity)_context) any where you need to (just make sure you pass it into the base constructor) }

La antigua forma en desuso sería Context view = (Activity)Xamarin.Forms.Forms.Context

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

over 4 years ago · Santiago Trujillo Relatório

0

Desde el lanzamiento de Xamarin 2.5, Xamarin.Forms.Forms.Context está obsoleto . El contexto ahora se puede obtener de la siguiente manera:

 var currentContext = Android.App.Application.Context;
over 4 years ago · Santiago Trujillo Relatório

0

var activity = (Activity)Forms.Context;

o si está utilizando MainActivity

 var activity = (MainActivity)Forms.Context;
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda