Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File("/mnt/sdcard/Download/miapp.apk")), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent); <--- aqui da el error.
Me salta el error anteriormente citado.
He estado buscando y parece que los tiros van por hacer un archivo xml algo así.
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application ... >
<meta-data android:name="android.security.net.config"
android:resource="@xml/network_security_config" />
...
</application>
</manifest>
El problema es que no se como hacerlo ni como aplicarlo a mi caso, ya que no hay mucha informacion y menos en español. Si alguien lo ha resuelto, le agradecería lo compartiera.
Gracias.
se debe usar:<application ... >
<meta-data ...>
<application
android:networkSecurityConfig="@xml/network_security_config"
>
--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/ff873220-b3a6-4747-a329-00d5c8592094%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/ff873220-b3a6-4747-a329-00d5c8592094%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/CAMsit%2BAUXwHyJyhtHv-FMW87Keg49Hb-OtmwvYzo%2BDU8gj%3DM1Q%40mail.gmail.com.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File("/mnt/sdcard/Download/GesPVerd.apk")), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // without this flag android returned a intent error!
context.startActivity(intent); -->> esta linea provoca el error.
** De momento no he tenido tiempo de hacer más pruebas
--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/fef9f146-7a62-4431-9792-d638e99df6a8%40googlegroups.com.
String app = "GesPVerd.apk";
String carpeta = Environment.getExternalStorageDirectory() + File.separator + "Download";
File miApp = new File(carpeta, app);
Uri miAppUri = FileProvider.getUriForFile(this.context, this.context.getApplicationContext().getPackageName() + ".provider", miApp);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(miAppUri,"application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // without this flag android returned a intent error!
context.startActivity(intent); -->>> vuelve a darme error(otro) aqui.
el file provider que tengo es este:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="."/>
<files-path name="xxx" path="yyy/"/>
</paths>y en el manifiest:<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>Pero ahora sigue yendo mal y el log que me da es este:10-07 12:00:09.860 13963-13963/? W/System: ClassLoader referenced unknown path: /system/priv-app/GooglePackageInstaller/lib/arm64 10-07 12:00:09.900 4807-4828/? W/ActivityManager: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{42ae5ff 13963:com.google.android.packageinstaller/u0a17} (pid=13963, uid=10017) that is not exported from uid 10122 10-07 12:00:09.903 13963-13976/? E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 Process: com.google.android.packageinstaller, PID: 13963 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:318) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) at java.util.concurrent.FutureTask.setException(FutureTask.java:223) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) Caused by: java.lang.SecurityException: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{42ae5ff 13963:com.google.android.packageinstaller/u0a17} (pid=13963, uid=10017) that is not exported from uid 10122 at android.os.Parcel.readException(Parcel.java:1683) at android.os.Parcel.readException(Parcel.java:1636) at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:4169) at android.app.ActivityThread.acquireProvider(ActivityThread.java:5434) at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2267) at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1515) at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1129) at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:982) at android.content.ContentResolver.openInputStream(ContentResolver.java:702) at com.android.packageinstaller.PackageInstallerActivity$StagingAsyncTask.doInBackground(PackageInstallerActivity.java:732) at com.android.packageinstaller.PackageInstallerActivity$StagingAsyncTask.doInBackground(PackageInstallerActivity.java:723) at android.os.AsyncTask$2.call(AsyncTask.java:304) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) 10-07 12:00:09.909 4807-8437/? W/ActivityManager: Force finishing activity com.google.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity 10-07 12:00:09.915 4807-8437/? W/ActivityManager: Force finishing activity com.google.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity 10-07 12:00:09.915 4807-8437/? W/ActivityManager: Duplicate finish request for ActivityRecord{b0b43e9 u0 com.google.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity t669 f} 10-07 12:00:09.952 13963-13979/? I/Adreno: QUALCOMM build : 74df444, I409c65498b Build Date : 06/22/16 OpenGL ES Shader Compiler Version: XE031.08.00.02 Local Branch : N16 Remote Branch : Remote Branch : Reconstruct Branch : 10-07 12:00:09.956 13963-13979/? I/OpenGLRenderer: Initialized EGL, version 1.4 10-07 12:00:09.956 13963-13979/? D/OpenGLRenderer: Swap behavior 1 10-07 12:00:09.967 4807-12010/? I/OpenGLRenderer: Initialized EGL, version 1.4 10-07 12:00:09.967 4807-12010/? D/OpenGLRenderer: Swap behavior 1 10-07 12:00:10.003 4807-14417/? D/WindowManager: relayoutVisibleWindow: Window{685d441 u0 es.puigverd.puigverd/es.puigverd.puigverd.InicioActivity EXITING} mAnimatingExit=true, mRemoveOnExit=false, mDestroying=false 10-07 12:00:10.720 4807-4863/? I/WindowManager: Destroying surface Surface(name=Starting com.google.android.packageinstaller) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.removeLocked:1449 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2478 com.android.server.wm.AppWindowToken.destroySurfaces:365 com.android.server.wm.WindowStateAnimator.finishExit:565 com.android.server.wm.AppWindowAnimator.stepAnimationLocked:427 com.android.server.wm.WindowAnimator.updateAppWindowsLocked:176 10-07 12:00:10.795 4807-7077/? I/WindowManager: Destroying surface Surface(name=com.google.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.removeLocked:1449 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:2478 com.android.server.wm.WindowManagerService.removeWindowLocked:2436 com.android.server.wm.WindowManagerService.removeWindowLocked:2305 com.android.server.wm.WindowManagerService.removeWindow:2300 com.android.server.wm.Session.remove:193
Y no entiendo que pasa, ya que anteriormente intentaba abrir un pdf y quedo arreglado aplicando este método que ahora aquí no me va funciona.los datos cogidos del depurador son estos:/mnt/sdcard/Download/GesPVerd.apk ** file /storage/emulated/0/Download ** carpeta content://es.puigverd.puigverd.provider/external_files/Download/GesPVerd.apk ** uri mifile: /storage/emulated/0/Download/GesPVerd.apkcarpeta: /storage/emulated/0/DownloadGracias por vuestro tiempo.
Caused by: java.lang.SecurityException: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{42ae5ff 13963:com.google.android.packageinstaller/u0a17} (pid=13963, uid=10017) that is not exported from uid 10122 at android.os.Parcel.readException(Parcel.java:1683)
--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/9f284f3d-1d79-4e60-90b3-523e62732524%40googlegroups.com.
String app = "GesPVerd.apk";
String carpeta = Environment.getExternalStorageDirectory() + File.separator + "Download";
File miApp = new File(carpeta, app);
Uri miAppUri = FileProvider.getUriForFile(this.context, this.context.getApplicationContext().getPackageName() + ".provider", miApp);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(miAppUri,"application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // without this flag android returned a intent error!
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); --> faltaba esta linea
context.startActivity(intent);
--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/5b047a72-948c-4428-9bd3-db491178d0f8%40googlegroups.com.