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