studio programacion móviles desarrollo curso cambiar aplicaciones android apk

programacion - curso android desarrollo de aplicaciones móviles pdf



Instalar apk programáticamente en Android 8(API 26) (1)

Debes agregar un nuevo permiso.

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>

Escribí un método para instalar apk en todas las versiones de Android y funciona hasta android 8. Pero parece que Android 8 no responde a este método.

install_apk(File file) { try { if (file.exists()) { String[] fileNameArray = file.getName().split(Pattern.quote(".")); if (fileNameArray[fileNameArray.length - 1].equals("apk")) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { Uri downloaded_apk = getFileUri(context, file); Intent intent = new Intent(Intent.ACTION_VIEW).setDataAndType(downloaded_apk, "application/vnd.android.package-archive"); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); context.startActivity(intent); } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } } } catch (Exception e) { e.printStackTrace(); } }

y este método para obtener uri en api> = 23

Uri getFileUri(Context context, File file) { return FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".HelperClasses.GenericFileProvider" , file); }