Necesidad de espacio de almacenamiento de contacto secundario accesible solo para CallerId

El almacenamiento de contactos en Android está bastante estandarizado y está unificado entre todas las aplicaciones, y es accesible según el nivel de permiso.

Sin embargo, necesito una forma de almacenar algunos contactos que no deberían estar en el espacio de almacenamiento de contactos estándar, porque todas las aplicaciones de mensajería pueden acceder a ellos y no hay forma de ocultar los contactos para que no aparezcan selectivamente en ellos, aparte de eliminar el contacto.

Sin embargo, eliminarlos por completo hace que sea difícil identificarlos durante una llamada entrante.

Por lo tanto, quiero tener una forma de guardar contactos a los que se pueda evitar que todas las aplicaciones accedan, pero debería poder identificarlos en una llamada entrante.

¿Cómo se puede hacer esto? Cualquier aplicación o almacenamiento en un archivo csv... ¿Alguna sugerencia, por favor?

Tenga en cuenta que cualquier aplicación de identificación de llamadas que esté basada en la nube no es la opción que estoy buscando. Quiero lograr esto solo para contactos que conozco y que he guardado.

Me temo que no hay forma de acceso de contacto selectivo. Incluso si los almacena en "particiones" separadas, siempre es el "proveedor de contactos" el que los mantiene. Por lo tanto, puede prohibir o permitir el acceso de una aplicación a todos los contactos. Aunque puede haber una aplicación de teléfono que venga con su propio almacenamiento de contactos al que solo se puede acceder (técnicamente es factible), no recuerdo haberlo visto. Pero sea bienvenido a cotejar mi lista .
@Izzy, ¿qué tan difícil será escribir una aplicación para un principiante completo con solo conocimientos de C? ¿O hay alguna otra manera de que esto pueda hacerlo yo mismo? Los tengo almacenados en un archivo de Excel. Solo estoy atascado con buscar y encontrar una parte. Automate puede tomar el número de teléfono entrante y luego mostrarlo como una ventana emergente .
Yaksha, no soy programador de Android, así que no puedo decirlo. Si es solo para CallerID (que no estaba claro hasta ahora), no debería ser demasiado complicado, pero las preguntas de desarrollo están fuera de tema aquí. Al mencionar Automate, es posible que alguien más ya haya escrito una receta correspondiente incluso.
@Izzy, pude hacerlo funcionar dentro de Automate. Gracias :)
Gracias por la auto-respuesta (upvoted)! Espero que mi edición esté bien para ti :) Voy a limpiar los comentarios aquí un poco entonces.

Respuestas (2)

Se me ocurrió una solución para esto yo mismo. En lugar de escribir una aplicación de Android completa, descubrí que Automate tiene bloques de funciones de SQLite. Así que acabo de escribir un flujo para lograr esto y se puede encontrar en

http://llamalab.com/automate/community/flows/17889

Vista previa de ese flujo:

vista previa de flujo
Vista previa de ese flujo (haga clic para ampliar)

Puede almacenar los contactos en .csv, no hay problema al convertir el archivo .vcf de respaldo de contacto predeterminado o usar aplicaciones como contactos para sobresalir. Pero sabe que los contactos son entidades que necesitan un procesamiento rápido, se almacenan en la partición /cache. Simplemente porque es una memoria más rápida que EMMC, FAT, exFAT, etc. Todas las aplicaciones los leen desde allí. No hay ningún algoritmo que lea los contactos de su partición /sdcard donde estoy seguro de que existirá su archivo .csv. La aplicación Contactos solo ve los contactos. Del mismo modo, cómo se les proporcionan otras aplicaciones. Una aplicación llamada Proveedor de contactos es la responsable de servir el flujo de contactos desde /cache. Dado que esta es una aplicación del sistema, tiene enlaces de aplicaciones y permisos en todo el sistema. A menos que lo convierta en una aplicación de usuario extrayéndolo, sus bibliotecas y clases y vuelva a compilarlas en la aplicación del usuario y configure los enlaces de la aplicación a las aplicaciones que autorice, pero aún así será como negar el acceso de contacto a otras aplicaciones. Así que esto es imposible.

Veo que estás pensando. Que funcionará. Una base de datos de contactos a recuperar necesitará una aplicación de automatización que también integre lenguaje de consulta. Sí, Macrodroid es una aplicación que puede automatizar y que puedo usar profesionalmente. Pero no tiene el lenguaje de consulta. Tal vez si obtiene una aplicación que puede buscar dentro del csv y mostrar el nombre de la persona, Macrodroid puede ayudarlo a recuperarlo en una ventana emergente en la llamada de inmediato. Pero si entiende la aplicación Tasker, es una aplicación moderna de automatización pesada uno a uno que puede ayudarlo, supongo. pero no lo entiendo mucho
Definitivamente. Porque si no va a utilizar el lenguaje de consulta, definitivamente está tratando de crear los nombres de contacto como variables y sus números como valores. En llamada reportando el valor, muestra el nombre de la variable. Esto será demasiado costoso para usar la aplicación de automatización. Pero desarrollar una aplicación no está nada mal. Si quieres esto tan en serio. Ahí es donde desearía que Android fuera una computadora con Windows, lo de Excel y BASIC podrían ser divertidos