Spanish Intent.getExtras

mlc

Active Member
Licensed User
Longtime User
Hola a todos, espero me podais ayudar.

Desde el navegador de internet, recibo un Intent.ACTION_SEND

Esta es la documentación y uso que he encontrado para este intent.

android.provider.Browser

EXTRA_SHARE_SCREENSHOT

Public static final java.lang.String EXTRA_SHARE_SCREENSHOT
Stores a Bitmap extra In an Intent representing the screenshot of a page To share. When receiving an Intent.ACTION_SEND from the Browser, use this To access the screenshot.
uso : Bundle extras = Intent.getExtras();
uso : Bitmap screenshot = (Bitmap) extras.get("share_screenshot");


y aqui lo que yo hago :

B4X:
   Dim In As Intent
    In = Activity.GetStartingIntent
   
    Log(In)   
'este es el log
'(Intent) Intent { act=android.intent.action.SEND typ=text/plain flg=0x3000000 cmp=mmm.calen/.main (has extras) }

   Log(In.ExtrasToString)
'este es el log
'Bundle[{share_screenshot=android.graphics.Bitmap@40530438, android.intent.extra.TEXT=http://www.google.es/, android.intent.extra.SUBJECT=Google, share_favicon=android.graphics.Bitmap@40525098}]

   If In.HasExtra("share_screenshot") Then
      Msgbox("tiene bitmap", "")

                'aqui bbyte es nulo
      Dim bbyte() As Byte
      bbyte = In.GetExtra("share_screenshot")
      
                'aqui el bitmap no se inicializa
      Dim b As Bitmap       
      b.Initialize2(In.GetExtra("share_screenshot"))
                
                'aqui tampoco, java.lang.NullPointerException
      Dim b As Bitmap    
      b.Initialize3(In.GetExtra("share_screenshot"))


La pregunta es, ¿teneis idea de como puedo extraer el bitmap del intent. ?

Gracias a todos
 
Last edited:

mlc

Active Member
Licensed User
Longtime User
Hola Mario

He encontrado algo, pero todavia no lo habia posteado porque la imagen resultante es de 90 x 80 pixel, y no incluye toda la pagina, sólo la parte visible. (se ve fatal)

B4X:
    Dim In As Intent
    In = Activity.GetStartingIntent

If In.HasExtra("share_screenshot") Then
      Dim r As Reflector
      r.Target = In
      Dim uri As Bitmap
   '   Uri = r.CreateObject2("getParcelableExtra", "share_screenshot", "java.lang.string")
      uri = r.RunMethod2("getParcelableExtra", "share_screenshot", "java.lang.String")

      Dim Out As OutputStream
      Out = File.OpenOutput(File.DirRootExternal, "web.png", False)
      uri.WriteToStream(Out, 100, "PNG")
      Out.Close
End If

El problema, creo, debe estar en r.runmethod, pero de momento ni idea.

Por favor, si encuentras la solucion, posteala.

Gracias
 

genesi

Active Member
Licensed User
Longtime User
En primer lugar gracias por compartir tu trabajo.
Sigo probando , tambien la imagine resulta pequena (135x120 en S2)
mario
 
Top