android nfc updates kiosk-mode device-owner

Actualizaciones de OTA para la aplicación de Android Device Owner(modo Kiosk)



nfc updates (4)

Crear un servicio para la verificación de antecedentes para la actualización. Si hay una actualización disponible, descargue el archivo apk y escríbalo en algún lugar como sdcard. Espera unos segundos para escribir completamente al ras. luego llama al siguiente código para instalar tu nuevo apk.

Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive"); startActivity(intent);

fileName es la ruta de su nuevo archivo apk en la tarjeta sd.

Soy capaz de hacer mi aplicación, la aplicación del propietario del dispositivo a través de NFC como se menciona here . Ahora quiero actualizar mi aplicación de forma inalámbrica, pero no puedo encontrar un método sin rooting .

Google ofrece muchas opciones para que las empresas desarrollen aplicaciones como se menciona here , pero en ninguna parte proporciona una manera de actualizar la aplicación a través de OTA.

Buscando una solución.


Esto es solo una especulación pura, ya que nunca he intentado usar yo mismo la API del instalador de paquetes:

Puede intentar configurar un paquete de instalación para la aplicación del propietario de su dispositivo (utilizando PackageManager.setInstallerPackageName() ). Este paquete de instalación tendría que ser un APK separado firmado con el mismo certificado que el APK del propietario del dispositivo.

getPackageManager().setInstallerPackage("<device.owner.package.name>", "<installer.package.name>");

Desde el APK de su instalador, puede usar PackageInstaller para preparar una actualización:

PackageInstaller pi = getPackageManager().getPackageInstaller(); int sessId = pi.createSession(new PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)); PackageInstaller.Session session = pi.openSession(sessId); OutputStream out = session.openWrite("app"); // .. write updated APK file to out session.fsync(out); session.commit(...); session.close();

Sin embargo, no estoy seguro de si esto instala silenciosamente tu actualización (o si funciona de la forma que hubiera esperado).


Puedes usar Play Store para proporcionar actualizaciones para tu aplicación:

  1. Aprovisione la aplicación del propietario del dispositivo a través de NFC, como ya lo hizo.

  2. Proporcione una versión actualizada (mismo nombre del paquete, misma firma, número de versión más alto) de la aplicación del propietario de su dispositivo en Play Store.

  3. En la aplicación Play Store de su dispositivo, busque la versión de Play Store de la aplicación e instale la actualización.

  4. Active las actualizaciones automáticas para la aplicación del propietario de su dispositivo en Play Store (en la página Play Store de su aplicación, haga clic en el menú (tres puntos) y active la casilla de verificación para la actualización automática.

Eso es bastante esfuerzo para la fase de aprovisionamiento, pero el dispositivo debería recibir actualizaciones futuras automáticamente.


Supongo que es posible que desee convertirse en una aplicación para socios de EMM / MDM; es similar a la aplicación de propietario de dispositivo, pero con privilegios y API mejorados. Normalmente, los fabricantes de equipos originales como Samsung / HTC proporcionan API ocultas a las aplicaciones asociadas de MDM para actualizar aplicaciones. No estoy seguro de si Android for Work también proporciona esta api.

Por ejemplo: los OEM proporcionan una api llamada updatePackage (String packageName) que puede ser utilizada por el cliente MDM en el dispositivo para actualizar el paquete. También puede utilizar esta API para actualizar la aplicación Device Owner.