No se pueden mover algunas aplicaciones a la tarjeta SD

Tengo aplicaciones como Any.DO y AK Notepad instaladas en mi teléfono Samsung Galaxy Y Android 2.3.6. Probé Titanium Backup y App 2 SD (mover aplicación a SD) pero aún no puedo mover estas aplicaciones a la tarjeta SD. ¿Qué ocurre? ¿Puede alguien ayudarme aquí?

¿Qué sucede si intenta mover las aplicaciones a SD?
@Flow mira mi respuesta. Ambas aplicaciones tienen widgets integrados, por lo que lo más probable es que no sean compatibles con App2SD.
Si desea mover su aplicación a la tarjeta SD debido al "almacenamiento interno bajo", consulte android.stackexchange.com/questions/30620/…

Respuestas (3)

Una aplicación debe ser compatible explícitamente con App2SD o no podrá moverla a la tarjeta. Hay varias razones por las que una aplicación podría no ser compatible:

  • usando widgets (las dos aplicaciones mencionadas parecen entrar en esta categoría. AK Notepad: "Pin notas en su pantalla de inicio"; Any.DO: "Incluso puede agregar nuestro widget a su pantalla de inicio")
  • ejecutar un servicio

Como la tarjeta SD sería inaccesible cuando se conectara a una computadora, ambas cosas se "bloquearían" (ya que ya no podrían acceder a sus datos, etc.). Por supuesto, siempre existe la posibilidad de que al desarrollador simplemente no le importe, en cuyo caso debe contactarlo y preguntar.

Me encontré con un caso interesante: una aplicación, f-droid.org/repository/browse/?fdid=com.nanoconverter.zlab que tiene un defecto: ofrece un servicio en segundo plano y un widget, pero mi 4.2.2 puede moverlo a Tarjeta SD (perdiendo esa funcionalidad, ofc).

Hay algunos factores que pueden afectar esto:

  1. Una aplicación debe declarar explícitamente que es preferible/posible instalarla en una tarjeta SD.

    A partir del nivel 8 de API, puede permitir que su aplicación se instale en el almacenamiento externo (por ejemplo, la tarjeta SD del dispositivo). Esta es una función opcional que puede declarar para su aplicación con el android:installLocationatributo de manifiesto. Si no declara este atributo, su aplicación se instalará solo en el almacenamiento interno y no se podrá mover al almacenamiento externo .

    (Énfasis mío)

  2. Una aplicación está configurada para compilar usando API 7 (Froyo) o inferior, que no admite la instalación de una aplicación en la tarjeta SD (incluso si está instalada en GingerBread o dispositivos más nuevos)

    La capacidad de que su aplicación se instale en el almacenamiento externo es una característica disponible solo en dispositivos que ejecutan API Nivel 8 (Android 2.2) o superior. Las aplicaciones existentes creadas antes del nivel 8 de API siempre se instalarán en el almacenamiento interno y no se pueden mover al almacenamiento externo (incluso en dispositivos con nivel 8 de API) . Sin embargo, si su aplicación está diseñada para admitir un nivel de API inferior a 8, puede optar por admitir esta función para dispositivos con nivel de API 8 o superior y seguir siendo compatible con dispositivos que utilizan un nivel de API inferior a 8.

    (Énfasis mío)

Las razones por las que no es preferible instalar algunas aplicaciones en la tarjeta SD son las siguientes:

Cuando el usuario habilita el almacenamiento masivo USB para compartir archivos con su computadora (o desmonta o elimina el almacenamiento externo), cualquier aplicación instalada en el almacenamiento externo y que se esté ejecutando actualmente se elimina. El sistema efectivamente ignora la aplicación hasta que se desactiva el almacenamiento masivo y se vuelve a montar el almacenamiento externo en el dispositivo. Además de matar la aplicación y hacer que no esté disponible para el usuario, esto puede dañar algunos tipos de aplicaciones de una manera más grave. Para que su aplicación se comporte de manera consistente como se espera, no debe permitir que su aplicación se instale en el almacenamiento externo si utiliza alguna de las siguientes funciones, debido a las consecuencias citadas cuando se desmonta el almacenamiento externo:

  • Servicios

    Su ejecución Servicese interrumpirá y no se reiniciará cuando se vuelva a montar el almacenamiento externo. [...]

  • Servicios de alarma

    Sus alarmas registradas con AlarmManagerserán canceladas. [...]

  • Motores de método de entrada

    Su IME será reemplazado por el IME predeterminado. [...]

  • Fondos de pantalla vivos

    Su Live Wallpaper en ejecución será reemplazado por el Live Wallpaper predeterminado. [...]

  • Widgets de aplicaciones

    Su App Widget se eliminará de la pantalla de inicio. Cuando se vuelve a montar el almacenamiento externo, su App Widget no estará disponible para que el usuario lo seleccione hasta que el sistema reinicie la aplicación principal (generalmente no hasta que se reinicie el sistema).

  • Gerente de Cuentas

    Sus cuentas creadas con AccountManagerdesaparecerán hasta que se vuelva a montar el almacenamiento externo.

  • Adaptadores de sincronización

    Tu AbstractThreadedSyncAdaptery toda su funcionalidad de sincronización no funcionarán hasta que se vuelva a montar el almacenamiento externo.

  • Administradores del dispositivo

    Usted DeviceAdminReceivery todas sus capacidades de administración se desactivarán, lo que puede tener consecuencias imprevisibles para la funcionalidad del dispositivo, que puede persistir después de volver a montar el almacenamiento externo.

  • Receptores de difusión que escuchan "arranque completado"

    El sistema entrega la ACTION_BOOT_COMPLETEDtransmisión antes de que el almacenamiento externo se monte en el dispositivo. Si su aplicación está instalada en el almacenamiento externo, nunca podrá recibir esta transmisión.

Si su aplicación utiliza alguna de las funciones enumeradas anteriormente, no debe permitir que su aplicación se instale en un almacenamiento externo.

(Algunas partes están redactadas. Explican lo que los desarrolladores deben hacer para que sus aplicaciones funcionen correctamente después de volver a montar la tarjeta SD).

Nota : esta respuesta sirve como información general sobre "¿Por qué algunas aplicaciones no se pueden mover a la tarjeta SD?"

Fuente: Desarrolladores de Android: Ubicación de instalación de la aplicación .

Definitivamente es posible mover aplicaciones a la tarjeta SD y seguir funcionando perfectamente (widgets y servicios incluidos) a través de Link2SD.

EDITAR: El uso de este método requiere acceso de raíz en su teléfono y también necesita formatear su tarjeta SD para tener una segunda partición.

Para evitar volver a publicar la respuesta de forma redundante aquí, solo dejaré un enlace: https://android.stackexchange.com/a/145591/167026