1 votos

¿Por qué no puedo sincronizar los contactos con las cuentas de Twitter/Facebook en Jelly Bean 4.1.1?

Con mi Samsung Galaxy Nexus no puedo sincronizar mis contactos (de Google Contacts) con los de Twitter/Facebook.

Mis cuentas están funcionando, pero cuando toco "Sincronizar ahora" no pasa nada. Dice "Última sincronización en..." pero los contactos no se actualizan.

¿Me estoy perdiendo algo?

1voto

Underlines Puntos 526

Porque Google lo deshabilitó por razones de marketing (¿impulsando Google+ tal vez?) Técnicamente sólo no está en la lista blanca en un archivo xml para permitir la sincronización

Según niranjanthilak aquí está su explicación detallada:

  • La aplicación de Facebook puede sincronizar sus contactos con los Contactos ( A través de ContactsProvider ) sólo cuando su lista blanca ( o, en otras palabras , dado un conjunto de permisos escalados ) en la ROM.

  • Para ello, tienes que editar el ContactsProvider.apk y añadir el permiso de la lista blanca.

  • Para editar el ContactsProvider.apk (que reside en el directorio /system/app/), necesitarás smali (un ensamblador/desensamblador para el formato dex de Android).

  • Después de desensamblar el ContactsProvider.apk usando smali , Vaya a la carpeta res/values/ ( en la fuente desensamblada ) , y agregue el archivo ( arrays.xml ) con el siguiente contenido:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string-array name="unrestricted_packages">
        <item>com.facebook.katana</item>
    </string-array>
</resources>
  • El com.facebook.katana es la aplicación de facebook. Así que después de añadir el archivo arrays.xml a la carpeta /res/values/, montar el ContactsProvider usando el smali en un archivo apk sin firmar.
  • Ahora, desde ICS, Android 4.0, Google ha deshabilitado esta disposición de aplicaciones de lista blanca de forma nativa, por lo que han ofuscado ciertos campos de la base de datos.
  • Añade la columna denominada
is_restricted

a la tabla raw_contacts dentro de contacts2.db ( almacenada en /data/data/com.Android.providers.contacts/database/ ) - Si tienes sqlite habilitado ( junto con busybox ) en tu kernel puedes usar este comando para alterar la base de datos y añadir el campo necesario ejecutándolo bajo ADB Shell:

sqlite3 /data/data/com.android.providers.contacts/databases/contacts2.db
 'ALTER TABLE raw_contacts ADD COLUMN is_restricted VARCHAR';
  • Después de añadir la columna, todas las cuentas de Facebook añadidas recibirán una solicitud de sincronización y aparecerán en los contactos.

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