Pregunta

He estado tratando de obtener una aplicación de Android para instalar un APK en la tarjeta SD mediante programación, pero me estoy encontrando con un pequeño problema.

Así es como lo estoy haciendo:

Intent intent = new Intent(Intent.ACTION_VIEW);           
intent.setDataAndType("ApkFilePath...","application/vnd.android.package-archive");
activity.startActivityForResult(intent,5000);

Ahora que funciona bien, trae el Administrador de paquetes y puedo controlar qué hacer cuando el administrador termina de instalar el APK.

Pero el problema que tengo es que si al final de la instalación el usuario hace clic en "abierto" en lugar de "hecho" el método "onactivityResult" no se llama, ya que el administrador todavía existe ... y esto se presenta Otro problema sobre otro requisito en el sistema.

¿Hay alguna forma de saber cuándo el usuario ha seleccionado "abierto" al final del administrador de paquetes, o hay alguna forma de obligar al administrador a mostrar solo los botones que quiero que muestre?

Realmente podría usar la ayuda, tengo la búsqueda en todas partes y no parece encontrar una solución.

¿Fue útil?

Solución

Puede agregar un receptor a su AndroidManifest.xml Para escuchar transmisiones si se instala una nueva aplicación. Como esto:

<receiver android:name=".PackageReceiver">
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_ADDED" />
        <action android:name="android.intent.action.PACKAGE_CHANGED" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="package" />
    </intent-filter>
</receiver>

Luego se llama a esta clase cuando se instala un nuevo paquete:

public class PackageReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    // handle install event here
  }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top