Página 1 de 3 123 ÚltimoÚltimo
Resultados 1 al 20 de 57


[Tutorial] Código avanzado para crear sencillamente botones que lancen cualquier apk


Estás en el tema [Tutorial] Código avanzado para crear sencillamente botones que lancen cualquier apk dentro del subforo Tutoriales - Samsung Galaxy S III en Esp-Desarrolladores. Actualización Tuto 29 - 07 - 2013. A partir de la EMF6 hay que ser muy precisos en la declaración de variables, parámetros y registros así como en la invocación de los métodos. Cambiado el código báse del botón GrxBtnJobManager y GrxBtnTapaTalk (se elimina .parameter, se definen 3 locals y se modifica el primer parámetro para invocar a los métodos que hacen la llamada. Así mismo se modifica el número de locals en método GrxAbreApp pasando de 10 a 11. Código avanzado para crear sencillamente...



Este tema tuvo 11235 Visitas y 56 Respuestas

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

  1. #1
    Fecha de ingreso
     Mar-2013
    Mensajes
     12,594
    Gracias Enviadas
    8,662
    Agradecido 22,992 Veces en 7,864 Posts


    Actualización Tuto 29 - 07 - 2013. A partir de la EMF6 hay que ser muy precisos en la declaración de variables, parámetros y registros así como en la invocación de los métodos. Cambiado el código báse del botón GrxBtnJobManager y GrxBtnTapaTalk (se elimina .parameter, se definen 3 locals y se modifica el primer parámetro para invocar a los métodos que hacen la llamada. Así mismo se modifica el número de locals en método GrxAbreApp pasando de 10 a 11.

    Código avanzado para crear sencillamente botones de acceso a aplicaciones.

    El objetivo de este tuto es compartir con vosotros un código hecho desde cero por mi y que uso en mis mods, que permite que podamos crear fácilmente iconos (botones) que al ser presionados invocan una aplicación.

    En este post voy a explicaros como usarlo, veréis lo fácil que es. En el siguiente post os describiré el código en detalle para que los que lo uséis sepáis que ponéis y los que queráis iniciaros en esto de los mods y smalies sepáis de qué va la película, al menos unos trazos.

    Este tutorial es la continuación de este otro (pulsar aquí) , en el que os expliqué una forma sencilla para crearnos botones personalizados. Como comenté en aquel tuto, tenía varias limitaciones. Sólo permitía invocar apks que tuvieran declaradas cierto tipo de activities. Además, ante un problema, el systemui se rompía.


    Pues bien, este código os va a permitir:

    - Invocar prácticamente a cualquier aplicación de una forma muy simple, como veréis, y con código más optimizado.
    - Una vez ejecutándose el código, capturar fallos, para que no se produzca un fc del systemui, mostrando un mensaje al usuario y creando unas líneas del log para depurar (developers. Esta parte la he simplificado, ya está probado bastante).


    1.- Ámbito de aplicación:

    El ámbito de aplicación es el systemui, tanto si ponemos estos botones en la barra de estado como en cualquier lugar de la cortina.

    2.- Previo a empezar debemos conocer cómo invocar nuestra apk.



    Para poder usar este mod, es necesario que conozcamos:

    - el nombre android de la aplicación así como la clase que vamos a invocar (activity). Para ello debemos descompilar las apks y leer su androidmanifiest.xml. También nos podemos ayudar con lauchers tipo nova que te permiten crear en el escritorio accesos directos a las activities disponibles de cada aplicación (de sistema o no). Para ello estos lauchers suelen funcionar de la siguiente manera. Mantenemos presionada la pantalla en una zona libre de iconos, le decimos que queremos añadir al escritorio un acceso directo de tipo actividad y nos sacan un listado con todas las apks y sus actividades. Podemos ir testando cual es la actividad que queremos invocar desde nuestros botones.
    Pero al final toca descompilar para no equivocarnos, aunque al menos, estos lauchers nos ayudan en la tarea.

    En este tuto vamos a crear dos accesos directos para ver cómo se utiliza el código, uno al jobmanager, a su pestaña de uso de ram y el otro a la pantalla inicial de tapatalk.

    Veamos por ejemplo este último.


    Código:
    <manifest android:versionCode="127" android:versionName="2.4.13" package="com.quoord.tapatalkpro.activity"
    
    
       <application android:label="Tapatalk" android:icon="@drawable/appicon" android:name="com.quoord.tapatalkpro.TapatalkApp" android:hardwareAccelerated="true">
            <meta-data android:name="UMS_APPKEY" android:value="6224dfb27c2094aca41cc6b0e9da2f47" />
            <activity android:name=".directory.EntryActivity" android:screenOrientation="unspecified" android:configChanges="locale|keyboardHidden|orientation" android:windowSoftInputMode="adjustPan">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.LAUNCHER" />
    donde:

    - package -> es el nombre de la aplicación
    - Clase: -> fijaros activity android:name=".directory.EntryActivity" -> .directory.EntryActivity es nuestra clase en este caso. Fijaros en el código anterior. Dentro de la activity debemos encontrar un action action android:name="android.intent.action.MAIN. Si no, no nos valdrá para este mod. En realidad pocas cosas querremos invocar cuya action no sea .MAIN.
    - android.intent.action.MAIN es el action que usa el código.

    IMPORTANTE:

    De cara a nuestro código, para invocar a tapatalk, usaremos lo siguiente

    - Nombre de la aplicación = "com.quoord.tapatalkpro.activity"
    - Nombre de la Clase = "com.quoord.tapatalkpro.activity.directory.EntryAc tivity".
    Fijaros que se añade al nombre de la aplicación el nombre de la activity. En otras aplicaciones, el nombre de la activity ya estará formado completamente, pero si no es así, como el caso de tapatalk, debéis seguir este sencillo criterio.

    En el caso del JobManager -> Uso de Ram, si descompiláis, ocurre otro tanto.


    - Nombre de la aplicación = "com.sec.android.app.controlpanel"

    y veréis que el nombre de la activity objetivo (uso de ram) se llama ".activity.RamUseageActivity", por lo que el nombre de la clase nos quedaría

    - Clase = "com.sec.android.app.controlpanel.activity.RamUsea geActivity

    3.- Descompilamos SystemUI

    4.- Por ejemplo vamos a situar el botón del jobmanager en la cabecera de la cortina.

    Para ello editamos res->layout->tw_status_bar_expanded_header.xml

    e insertamos donde creamos conveniente el siguiente código (personalizarlo a vuestro gusto) - (maquetar todo esto no es objeto de este tuto, pero ya he escrito otros que os dicen cómo podemos hacerlo :) ).

    Código:
    	<ImageView android:layout_gravity="center_vertical" android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/grx_jobmanager" android:scaleType="center" android:onClick="GrxBtnJobManager" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
    donde:

    - android:onClick="GrxBtnJobManager" -> GrxBtnJobManager será el nombre del método que será llamado al pulsar sobre la imagen.
    - android:src="@drawable/grx_jobmanager" -> crearemos un png en res-> drawable-xhdp con nombre grx_jobmanager.png. El tamaño, pues aprox de 50 x 50 para esta zona está bien.
    - systemui:glowBackground="@drawable/ic_sysbar_highlight" -> provoca un efecto "glow" sobre el icono al pulsar.

    (si ponéis id no olvidéis añadirlo en res-values-ids.xml).

    5.- Vamos a poner el acceso a tapatalk en la cortina.

    Para ello editamos res-layout-tw_status_bar_expanded.xml

    Y el procedimiento el mismo. Mirad, os pongo cómo lo he hecho para el ejemplo y que véis en la imagen (solo para que veáis que el mod funciona también en la cortina).

    He modificado la altura del dragger del operador a 80. La barrita horizonal y el texto ocupan 40 de alto y nuestro botón otros 40. Esto es una ñapa solo para mostraros que se puede usar el código también en la cortina!!!

    Código:
    	<com.android.systemui.statusbar.phone.CloseDragHandle android:layout_gravity="bottom" android:orientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="80.0dip">
            <RelativeLayout android:layout_width="fill_parent" android:layout_height="40.0dip">
                <ImageView android:layout_gravity="bottom" android:id="@id/gid_barra_operador" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height" android:src="@drawable/tw_status_bar_close" android:scaleType="fitXY" />
                <TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network" android:gravity="center" android:layout_gravity="bottom" android:id="@id/carrier_label" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height" android:layout_marginBottom="10.0dip" />
    		</RelativeLayout>
    		<RelativeLayout android:layout_width="fill_parent" android:layout_height="40.0dip">
    			<ImageView android:layout_gravity="bottom"  android:paddingLeft="8.0dip" android:paddingRight="8.0dip" android:layout_width="40.0dip" android:layout_height="40.0dip" android:layout_marginLeft="8.0dip" android:src="@drawable/gi_tapatalk" android:scaleType="center" android:onClick="GrxBtnTapaTalk" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
    		</RelativeLayout>
        </com.android.systemui.statusbar.phone.CloseDragHandle>
    Por tanto, creamos un png de nombre grx_tapatalk.png y lo dejamos en drawable-xhdpi de un tamaño adecuado (40x40 o si lo hacéis mayor, haréis trabajar más al sistema para ajustarlo, je je..).

    Pues así de fácil mostramos los botónes, ahora vamos a darle funcionalidad.




    6.- localizamos y abrimos en el editor de texto el archivo smali/com/android/systemui/SystemUIService.smali

    7.- Copiamos el código principal del mod

    Para ello localizamos

    Código:
    # virtual methods
    y justo encima copiaremos el siguiente código. Copiad y pegar directamente el mismo. Este código lo veremos en más detalle en el segundo post, lo que hace es construir la llamada, llamar y capturar cualquier posible excepción (en este caso muestra un mensajito al usuario y escribe en el logcat para ayudar a depurar) y cierra la cortina.

    Pulsar el botón para ver código


    8.- Creando los métodos que se ejecutan en los onclick (al pulsar sobre los botones)

    Como hemos visto, en cada botón, ponemos un android:onClick="GrxBtnTapaTalk", android:onClick="GrxBtnJobManager" o lo que sea.

    Pues bien, los métodos para invocar cada uno de los botones que hagamos serán muy pequeñas y similares.

    - Las vamos a situar después de

    Código:
    # virtual methods
    A.- Para el JobManager



    B.- Para Tapatalk




    Como véis, por cada botón, crearemos métodos como estos, podemos copiar y pegar, cambiar el nombre del méotodo por el que hayamos puesto en los onclick de los xml y cambiaremos el valor de v2 y v1 por los que correspondan. GrxAbreApp es el método principal que invoca a la apk y controla errores.


    Eso es todo,



    Resumen.


    - En SystemUIService.smali copiamos antes de # virtual methods el código principal de este mod
    - Después de # virtual methods vamos copiando y adaptando estos pequeños métodos por cada botón. El nombre de la función, el mismo que pongamos en los xml. El nombre de la apk y la clase a invocar los sacamos del androidmanifiest.xml de la apk destino.
    - En los xml tw_status_bar_expanded y tw_status_bar_expanded_header incluímos los <imageview.... y creamos un png con tamaño y nombre adecuado (el nombre el que se indica en esta línea) y en el onclick cambiamos el nombre del método para cada botón y que corresponda con los métodos comentados en el punto anterio.



    Compilamos y a correr!.

    Imágenes adjuntadas Imágenes adjuntadas
    Última edición por Grouxho; 29-07-13 a las 13:08


  2. Los siguientes 7 Usuarios dieron las gracias a Grouxho Por su Mensaje :

    Ignacio (28-06-13),javilonas (28-06-13),Jeshuuu (28-06-13),luiso51 (29-06-13),panchop_78 (07-08-13),peble (28-08-13),psanlu (17-03-14)




  3. #2
    Fecha de ingreso
     Mar-2013
    Mensajes
     12,594
    Gracias Enviadas
    8,662
    Agradecido 22,992 Veces en 7,864 Posts


    Explicación del código.


    Empezaremos por los métodos invocados desde los xml.


    Ejemplo, botón tapatalk


    1.- Qué pasa cuando pulsamos el botón del tapatalk

    Se ejecuta el método.

    Código:
    .method public GrxBtnTapatalk(Landroid/view/View;)V
        .locals 4
        .parameter "v"
    
        const-string v2, "com.quoord.tapatalkpro.activity" #nombre de la apk
    
        const-string v1, "com.quoord.tapatalkpro.activity.directory.EntryActivity" #nombre de la activity - clase
    
        invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context;
    
        move-result-object v0
    
        invoke-direct {v0, v0, v1, v2}, Lcom/android/systemui/SystemUIService;->GrxAbreApp(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
    
        return-void
    .end method
    En android no se puede hacer nada sin tener acceso al contexto (context) de lo que se esté ejecutando en ese momento. A mi siempre es lo que más me cuesta encontrar para hacer algunos mods. En este caso tenemos suerte. Si os fijási en la declaración del método:

    Código:
    .method public GrxBtnTapaTalk(Landroid/view/View;)V
    ésta es invocadoa por el sistema pasándole como parámetro la vista desde dónde se ejecuta la llamada (view). Esto no lo he averiguado porque si, sino tras muchos fcs y análisis del logcat, la virgen.

    Como nos pasan la vista, podemos acceder fácilmente al contexto ....->getContext....

    y ya podemos llamar a nuestra función principal, pasándole como paramétros, el context, el nombre de la actividad y el nombre de la apk (ver siguiente código, lo marcado en azul).

    invoke-direct {v0, v0, v1, v2}, Lc...

    2.- Función principal.

    Os dejo el código comentado, para que os quejéis, je je...




    - Declaración: .method private GrxAbreApp(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V , lo dicho, espera recibir el context, el string con el nombre de la clase y el nombre de la apk.

    - En el código podemos acceder a los tres parámetros como p0 (context, en realidad es p1, pero según lo invoco podemos usar p0) , p2 (nombre clase) y p3 (nombre apk). o hacer uso de variables locales auxiliares


    Código:
        move-object v0, p0   -> v0 tiene el context
    
        move-object v2, p2 -> v2 tiene el nombre de la clase
    -
    - En azul el bloque para llamar a la apk

    Todo lo que está entre

    :try_start_0

    y

    :try_end_0

    le digo al android que si hay una excepción ejecute lo que yo quiera (bloque verde). Esto se hace mediante el código

    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0

    y si hay casque irá a la etiqueta

    :catch_0

    a ejecutar el código.

    Esto tiene muchas ventajas. La fundamental es que si por cualquier motivo hay un fallo al llamar, no se rompe (FC, "SystemUI se ha detenido") el systemUi. Puede haber casques por varios motivos, por ejemplo, que vuestro usuario haya desinstalado la apk que llamáis.

    - En verde el código que se ejecuta si hay un casque

    - En rojo el código que se ejecuta tras un casque (azul) para mostrar mensaje

    - En negro el código para cerrar la cortina y finalizar.


    - Precaución con mayúsculas y minúsculas en nombre métodos. Que coincidan en xml y smali o el fc que se os dará será antes de ejecutarse nuestro catch..

    Saludetes, esto ya es un mod avanzado de verdad, puro desarrollo, pero como véis lo podéis aprovechar muy fácilmente.

    El mod sencillo me funcionaba también en la 4.2.2 leak, por lo que entiendo que este también, cuando salga una oficial lo pruebo y actualizo si hace falta.
    Última edición por Grouxho; 28-06-13 a las 23:15


  4. Los siguientes 2 Usuarios dieron las gracias a Grouxho Por su Mensaje :

    luiso51 (29-06-13),peble (28-08-13)

  5. #3
    Fecha de ingreso
     May-2013
    Ubicación
     Cataluña
    Edad
     25
    Mensajes
     489
    Modelo de smartphone
     S III.
    Tu operador
     Yoigo
    Gracias Enviadas
    162
    Agradecido 327 Veces en 159 Posts


    Oye, cuando hagas tutos, desactiva las caritas, anda x'D

    Ahora me lo leo bien leído.

  6. #4
    Fecha de ingreso
     Mar-2013
    Mensajes
     12,594
    Gracias Enviadas
    8,662
    Agradecido 22,992 Veces en 7,864 Posts


    Cita Iniciado por Ignacio Ver mensaje
    Oye, cuando hagas tutos, desactiva las caritas, anda x'D

    Ahora me lo leo bien leído.
    Cómo se desactivan?


  7. #5
    Fecha de ingreso
     Mar-2013
    Ubicación
     Chile
    Edad
     25
    Mensajes
     1,881
    Versión de ROM
     6.0.1
    Modelo de smartphone
     S7 G930F
    Tu operador
     Movistar
    Gracias Enviadas
    906
    Agradecido 2,244 Veces en 967 Posts


    Maestro!
    Hablando de añadir cosas a la cortina.. Como se podria añadir un toggle? Me gustaría añadir un toggle a mi rom (el toggle del flash). Lo e visto en rom del s2 y salen hasta en el ajutes/pantalla/panel de notificaciones. Ojo, manteniendo los colores stock. Es muy dificil??? tu Grouxho que todo lo sabes :P
    Esp-desarrolladores necesita de tu ayuda, cualquier donación voluntaria siempre sera bien recibida. Recuerden, esto es una forma de agradecer a los desarrolladores que trabajan día y noche para ustedes (los usuarios) a que sigan trabajando de manera gratuita y altruista. Todas las donaciones deben hacerse acá:

    Se les agradecerá de todo corazón su aporte.

  8. Los siguientes usuarios agradecieron a Jeshuuu por su mensaje :

    Grouxho (28-06-13)

  9. #6
    Fecha de ingreso
     May-2013
    Ubicación
     Cataluña
    Edad
     25
    Mensajes
     489
    Modelo de smartphone
     S III.
    Tu operador
     Yoigo
    Gracias Enviadas
    162
    Agradecido 327 Veces en 159 Posts


    Cita Iniciado por Grouxho Ver mensaje
    Cómo se desactivan?
    Cuando vas a publicarlo, abajo, donde pone "Opciones adicionales" te da la opción de desactivarlas.

    @Jeshuuu, hace un rato me estaba preguntando lo mismo x'D

  10. Los siguientes usuarios agradecieron a Ignacio por su mensaje :

    Grouxho (28-06-13)

  11. #7
    Fecha de ingreso
     Mar-2013
    Ubicación
     Chile
    Edad
     25
    Mensajes
     1,881
    Versión de ROM
     6.0.1
    Modelo de smartphone
     S7 G930F
    Tu operador
     Movistar
    Gracias Enviadas
    906
    Agradecido 2,244 Veces en 967 Posts


    jjeje si, en stock rom nunca los e visto xD y en el s2 andan varias rom con el toggle ese, muy sexy y util.
    Esp-desarrolladores necesita de tu ayuda, cualquier donación voluntaria siempre sera bien recibida. Recuerden, esto es una forma de agradecer a los desarrolladores que trabajan día y noche para ustedes (los usuarios) a que sigan trabajando de manera gratuita y altruista. Todas las donaciones deben hacerse acá:

    Se les agradecerá de todo corazón su aporte.

  12. #8
    Fecha de ingreso
     Mar-2013
    Mensajes
     12,594
    Gracias Enviadas
    8,662
    Agradecido 22,992 Veces en 7,864 Posts


    Cita Iniciado por Jeshuuu Ver mensaje
    Maestro!
    Hablando de añadir cosas a la cortina.. Como se podria añadir un toggle? Me gustaría añadir un toggle a mi rom (el toggle del flash). Lo e visto en rom del s2 y salen hasta en el ajutes/pantalla/panel de notificaciones. Ojo, manteniendo los colores stock. Es muy dificil??? tu Grouxho que todo lo sabes :P
    El toggle del flash?. Recuerdame este finde y te paso los smalies del torch que soportan toggle. Respecto al toggle, espérate unos días que saco mi apk de settings y verás qué fácil.

    Yo no hago los toggles como en las guías, hasta ahora los hacía en un smali propio con todos los toggles, color pickers, etc, como en el multimod. La ventaja es que concentro toda la lógica de gestión de las opciones en un solo sitio y me vale para otras veces. La desventaja es que como ahora ya estoy haciendo mods complejos de veras, pues ese código es difícil de mantener y explicar. Además, haciendo el código que controla la clave asociada al toggle directamente en el secsettings pierdes mucho tiempo flasheando y arreglando casques.

    Por eso me hice una apk que será de libre disposición. Ya está probada, de hecho el mod de los accesos configurables en el bloqueo aosp (que es un flipe de mod, muy trabajado) me hubiera costado sangre hacerlo por lo tradicional. Voy a añadirle soporte para un par de cosas (killapp y alguna cosilla más) y os la pongo a disposición, con guía de uso y además un tuto para explicaros bien lo de los accesos configurables del bloqueo aosp. Un poco de paciencia, que esta semana tuve mucho lío y no he podido avanzar en el nuevo mod, que lleva el toggle del torch, skip track configurable ... bueno un montón de cosas. colorines y demás y muy optimizado para que no suponga gasto extra de batería..

    . Me falta por terminar dos mods que quiero hacer y ya saco todo. A ver si saco algún hueco el finde, que suelen ser más liados que entre semana.


  13. Los siguientes usuarios agradecieron a Grouxho por su mensaje :

    peble (28-08-13)

  14. #9
    Fecha de ingreso
     Mar-2013
    Ubicación
     Chile
    Edad
     25
    Mensajes
     1,881
    Versión de ROM
     6.0.1
    Modelo de smartphone
     S7 G930F
    Tu operador
     Movistar
    Gracias Enviadas
    906
    Agradecido 2,244 Veces en 967 Posts


    Cita Iniciado por Grouxho Ver mensaje
    El toggle del flash?. Recuerdame este finde y te paso los smalies del torch que soportan toggle. Respecto al toggle, espérate unos días que saco mi apk de settings y verás qué fácil.

    Yo no hago los toggles como en las guías, hasta ahora los hacía en un smali propio con todos los toggles, color pickers, etc, como en el multimod. La ventaja es que concentro toda la lógica de gestión de las opciones en un solo sitio y me vale para otras veces. La desventaja es que como ahora ya estoy haciendo mods complejos de veras, pues ese código es difícil de mantener y explicar. Además, haciendo el código que controla la clave asociada al toggle directamente en el secsettings pierdes mucho tiempo flasheando y arreglando casques.

    Por eso me hice una apk que será de libre disposición. Ya está probada, de hecho el mod de los accesos configurables en el bloqueo aosp (que es un flipe de mod, muy trabajado) me hubiera costado sangre hacerlo por lo tradicional. Voy a añadirle soporte para un par de cosas (killapp y alguna cosilla más) y os la pongo a disposición, con guía de uso y además un tuto para explicaros bien lo de los accesos configurables del bloqueo aosp. Un poco de paciencia, que esta semana tuve mucho lío y no he podido avanzar en el nuevo mod, que lleva el toggle del torch, skip track configurable ... bueno un montón de cosas. colorines y demás y muy optimizado para que no suponga gasto extra de batería..

    . Me falta por terminar dos mods que quiero hacer y ya saco todo. A ver si saco algún hueco el finde, que suelen ser más liados que entre semana.
    Una pregunta, tus toggles son como los aosp? Porque ami me gustan los stock, me gusta el reordenamiento que hacen al bajar la cortina xD
    Esp-desarrolladores necesita de tu ayuda, cualquier donación voluntaria siempre sera bien recibida. Recuerden, esto es una forma de agradecer a los desarrolladores que trabajan día y noche para ustedes (los usuarios) a que sigan trabajando de manera gratuita y altruista. Todas las donaciones deben hacerse acá:

    Se les agradecerá de todo corazón su aporte.

  15. #10
    Fecha de ingreso
     Mar-2013
    Mensajes
     12,594
    Gracias Enviadas
    8,662
    Agradecido 22,992 Veces en 7,864 Posts


    Creó que hablamos de cosas distintas entonces. Tu quieres el toggle en la cortina?. Yo prefiero el lidroid y ya lo trae. Yo me refería a un toggle para activar el torch en bloqueo. Si lo que quieres es añadir un toggle en la cortina, en el quickpanel, tampoco es muy complicado. Laborioso pero no muy complicado.

    Última edición por Grouxho; 29-06-13 a las 10:37


  16. #11
    Fecha de ingreso
     Mar-2013
    Mensajes
     12,594
    Gracias Enviadas
    8,662
    Agradecido 22,992 Veces en 7,864 Posts


    Actualizado el primer post solucionando algún problemilla que aparece al usar el anterior código bases EMF6 en adelante.


  17. Los siguientes usuarios agradecieron a Grouxho por su mensaje :

    peble (29-08-13)

  18. #12
    Fecha de ingreso
     Mar-2014
    Mensajes
     63
    Gracias Enviadas
    41
    Agradecido 11 Veces en 9 Posts


    Estoy intentando poner los botones en la cortina pero al darle al boton me sale que el systemUI se ha detenido y no se que hacer a ver si me podeis orientar este es el logcat:

    Gracias por todo

  19. #13
    Fecha de ingreso
     Mar-2013
    Mensajes
     12,594
    Gracias Enviadas
    8,662
    Agradecido 22,992 Veces en 7,864 Posts


    Código:
    Caused by: java.lang.NoSuchMethodError: com.android.systemui.SystemUIService.GrxAbreApp

    tienes ese método en el smali?


  20. #14
    Fecha de ingreso
     Mar-2014
    Mensajes
     63
    Gracias Enviadas
    41
    Agradecido 11 Veces en 9 Posts


    Ahora mismo no te puedo contestar porque no estoy en el ordenador pero si lo tengo que tengo q borrarlo?


  21. #15
    Fecha de ingreso
     Mar-2014
    Mensajes
     63
    Gracias Enviadas
    41
    Agradecido 11 Veces en 9 Posts


    Aahh perdona el método grxabreapp si lo tengo
    Encima de virtual método o algo así

  22. #16
    Fecha de ingreso
     Mar-2014
    Mensajes
     63
    Gracias Enviadas
    41
    Agradecido 11 Veces en 9 Posts


    Otra cosa mi movil no es un gala y S3, por si no sirve para otro movil


  23. #17
    Fecha de ingreso
     Mar-2013
    Mensajes
     12,594
    Gracias Enviadas
    8,662
    Agradecido 22,992 Veces en 7,864 Posts


    Cita Iniciado por psanlu Ver mensaje
    Otra cosa mi movil no es un gala y S3, por si no sirve para otro movil

    Enviado desde mi THL W8s mediante Tapatalk
    Pues me tendrás que poner ese smali (con el código hecho) por aquí a ver cómo te quedó y si veo algo.. No creo que tenga que ver el modelo.

    El error te dice que no existe. Que no exista es porque o has puesto en un lugar incorrecto ese método o que no está. Si está será lo otro. O quizás es que en la versión 4.3 no vale este método. No lo he probado en 4.3. Los hago de otra forma ahora.


  24. #18
    Fecha de ingreso
     Mar-2014
    Mensajes
     63
    Gracias Enviadas
    41
    Agradecido 11 Veces en 9 Posts


    Cuando pueda te lo pongo y es la 4.2
    Muchas gracias @Grouxho


  25. #19
    Fecha de ingreso
     Mar-2014
    Mensajes
     63
    Gracias Enviadas
    41
    Agradecido 11 Veces en 9 Posts

  26. #20
    Fecha de ingreso
     Mar-2013
    Mensajes
     12,594
    Gracias Enviadas
    8,662
    Agradecido 22,992 Veces en 7,864 Posts


    Cita Iniciado por psanlu Ver mensaje
    Aquí lo tienes @Grouxho
    https://mega.co.nz/#!JlgESC6K!8570I1...BpYBmVYl7zIyGY

    Enviado desde mi THL W8s mediante Tapatalk
    en cuanto pueda lo miro, no tengo acceso a mega ahora.


  27. Los siguientes usuarios agradecieron a Grouxho por su mensaje :

    psanlu (18-03-14)

Página 1 de 3 123 ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  


ESP-Desarrolladores

    ESP-Desarrolladores, es una comunidad de desarrollo Android en habla hispana, Aquí encontrarás lo último en Android, ROMs, Kernel, APPs, etc... Pasa y Ponte Cómodo!!! estás en tu casa ;)

Síguenos en

Twitter Facebook Google+ espdesarrolladores - Andyou Youtube RSS Feed