studio start intent for example activity android android-intent android-ui start-activity onactivityresult

android - intent - startactivityforresult fragment



ACTION_INSTALL_PACKAGE (1)

Mi aplicación está tratando de instalar una APK.

Intent installIntent = new Intent(Intent.ACTION_INSTALL_PACKAGE); installIntent.setData(Uri.fromFile(new File(pathToApk))); installIntent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true); installIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true); installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ((Activity)context).startActivityForResult(installIntent, Constants.APP_INSTALL_REQUEST);

En mi actividad

protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case Constants.APP_INSTALL_REQUEST: if(resultCode == RESULT_OK){ Log.e(TAG, "Package Installation Success"); }else if(resultCode == RESULT_FIRST_USER){ Log.e(TAG, "Package Installation Cancelled by USER"); }else{ Log.e(TAG, "Something went wrong - INSTALLATION FAILED"); }

Cuando se inicia mi StartActivityResult, mi actividad obtiene instantáneamente el código de resultado 0 que corresponde a RESULT_CANCELLED mientras la IU de instalación del sistema todavía está esperando el permiso del usuario.

Mi actividad para realmente saber si la instalación fue exitosa o no y en base a esa actualización su interfaz de usuario.

Cualquier ayuda será apreciada.


Encontrado el culpable.

* installIntent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); *

Aunque el sistema devuelve a la vida la instancia existente de mi actividad, está en la nueva pila TASK . Entonces, el sistema cancela la actividad ForResult antes de que comience la nueva TAREA.

Gracias