1 votos

Macrodroid: Convertir el código de área "+63" en "0"

Así que ya hay una macro que funciona y que hace lo siguiente:

Cada vez que marco/llamo a un número con un prefijo distinto de los que he especificado, aparece un cuadro de diálogo. Quería "filtrar" los números para que me avisaran si iba a realizar una llamada a un número perteneciente a una red/compañía diferente.

Para aclarar, hay dos códigos en el prefijo. Uno es el código de país y el otro es el código de red. Por ejemplo, el código de país es +63 y el código de red (empresa) es 945. Además, el código de país +63 es intercambiable con el 0 y ambos son válidos al realizar una llamada. Así, un número +63945xxx es lo mismo que 0945xxx.

Mi problema actual es que los prefijos de 4 dígitos (los que empiezan por 0, como 0945, 0917, etc.) ya están "filtrados" por la macro existente. Sin embargo, los prefijos de 6 dígitos (los que empiezan por +63 como +63945,+63917 no se filtran), por lo que 0945 y +63945, que son prácticamente iguales, obtienen respuestas diferentes (uno provocará un cuadro de diálogo y el otro no). Lo que busco es una forma de convertir primero +63 en 0 para que se convierta en un número de 4 dígitos que la macro pueda filtrar.

Aquí hay un enlace a mi pregunta anterior que puede servir de referencia.

Hacer un mensaje emergente si está a punto de llamar a los códigos de área excluidos especificados

También se adjunta la macro que actualmente filtra los prefijos de 4 dígitos pero pasa por alto los de 6 dígitos.

Edición: 15/08/2020 14:10

Empecé una nueva macro desde cero sólo para estar seguro. Pero el resultado en el registro parece ser el mismo. Ejemplos de números marcados serían +639451234567 y 09451234567. Todos los números marcados han dado lugar a un cuadro de diálogo. Aquí están las capturas de pantalla:

( https://i.stack.imgur.com/wksR0.png ) ( https://i.stack.imgur.com/FJTtc.png ) ( https://i.stack.imgur.com/y9Jqi.png ) ( https://i.stack.imgur.com/qnwbm.png ) ( https://i.stack.imgur.com/JTS76.png ) ( https://i.stack.imgur.com/uBuJ8.png )

Edición: 22:30 A continuación macro dado por beeshyams funciona bien.

1voto

beeshyams Puntos 82
  • No estoy seguro de qué es lo que ha fallado por tu parte, podría ser una configuración errónea, un mal uso de las variables globales o un error tonto. En ausencia de información sobre la resolución de problemas, es un juego de adivinanzas.

  • Su planteamiento de cambiar 63 por 0 como en el título es totalmente innecesario.

Lógica de macros

  1. El número de la llamada saliente se asigna a la variable local A como una cadena (no utilice variables globales a menos que lo necesite)

  2. La longitud de la cadena en la variable A se asigna a la variable strlen. Tenemos dos tipos de números salientes, los que empiezan por +63, que tienen 13 dígitos y los que empiezan por 09 que tienen 11 dígitos.

  3. Utilizamos la lógica IF-then-ELSE. Si la longitud de la cadena es 13 (correspondiente a los números que empiezan por +65):

a) Utilizamos la manipulación del texto para averiguar los seis primeros dígitos para saber si son códigos permitidos o no. En cualquier caso, se asignan a la variable A.

b) Si los primeros 6 dígitos son códigos permitidos, no se realiza ninguna acción. Si no lo son, se configura un diálogo de advertencia. Esto se hace mediante el bucle IF anidado y se puede ampliar para incluir más códigos de área.

  1. Volviendo al paso 2, si no son 13 dígitos, entonces se llevarán a cabo las acciones del bucle else. Estamos buscando 11 dígitos correspondientes a 09 números de inicio. Pero al decir que no es 13, también estamos incluyendo otros casos como la policía, los bomberos, etc., que tienen 3 dígitos y para los que la advertencia seguirá apareciendo y el esfuerzo para excluir este caso de 3 dígitos no vale la pena.

  2. Para los números de 9 dígitos, se ejecuta el mismo conjunto de acciones en Para 3a) y b).

  3. Al final se inicializan ambas variables

La macro es un poco larga debido a los comentarios, así que está en dos capturas de pantalla, la primera cubriendo IF y la siguiente ELSE

IMG: IMG:

(Haga clic para ampliar)

OP ha confirmado que funciona como se esperaba. Para evitar que MacroDroid sea asesinado siga las instrucciones en no mates mi app.com

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X