//-Carga el fichero gpx creado en la sd
void Orux_gpx(String pGpx){
String carpeta = Environment.getExternalStorageDirectory() + File.separator + "midominio";
File miGpx = new File(carpeta, pGpx);
Uri gpxfURI = FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName() + ".provider", miGpx);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(gpxfURI,"text/xml");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
finish();
}
Ahora, se habre el Orux, pero no carga el fichero gpx y además no da ningún tipo de error, no nada en el logcat.
En la ayuda del Orux, se ve que no han actualizado a esta nueva versión y parece que nadie sabe nada.
He comprobado que el fichero esté y además desde el emsexplorer, al clicar encima, si que abre el archivo con el oruxmaps, asi que alguna manera debe de haber.
Bueno, ya estoy aquí otra vez. He hecho unas pruebas y NO he conseguido solucionar el problema, les expongo los resultados. Tengo 2 aplicaciones distintas y he probado de copiar el mismo fichero a la otra y en esta SI que me abre el orux y carga el trak, pero en la original no. He puesto los datos que se ven en el debug y parecen correctos, le he puesto la comprobacion de "if(outputFile.exists())" y si que ve el fichero. El logcat no da ningún tipo de error, supongo que algo pasa con el orux y no coge el fichero de trak. Aplicación 2, en esta sí que funciona, originalmente abría otro tipo de fichero, pero la he adaptado y funciona correctamente, abriendo el Orux y cargando el trak: la pakage de esta es: "package es.puigverd.puigverd;" * en esta aplicación, el código está puesto en una clase String app = "salt.gpx"; String carpeta = Environment.getExternalStorageDirectory() + File.separator + "Download"; File miApp = new File(carpeta, app); // debug->"/storage/emulated/0/Download/salt.gpx" Uri miAppUri = FileProvider.getUriForFile(this.context, this.context.getApplicationContext().getPackageName() + ".provider", miApp); // debug->"content://es.puigverd.puigverd.provider/external_files/Download/salt.gpx" Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(gpxfURI,"text/xml"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // debug: "Intent { act=android.intent.action.VIEW dat=content://es.puigverd.puigverd.provider/external_files/Download/salt.gpx typ=text/xml flg=0x10000001 }" context.startActivity(intent); **** debug->"aqui van los valores que da el debug justo después de ejecutar la línea" Aplicación original, aquí NO funciona:(debe de ver el fichero porque sabe que tiene que arrancar el orux, y lo arranca, pero una vez arrancado el orux, este no carga el trak) la pakage de esta es: "package es.vyvalavida.excursions;" * en esta aplicación, el código está puesto en la misma activity, en una función. void Orux_gpx(String pGpx){ pGpx = "salt.gpx"; String carpeta = Environment.getExternalStorageDirectory() + File.separator + "vyvalavida"; File miGpx = new File(carpeta, pGpx); //-el valor que muestra el debug es: "/storage/emulated/0/vyvalavida/salt.gpx" Uri gpxfURI = FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName() + ".provider", miGpx); // debug->"content://es.vyvalavida.excursions.provider/external_files/vyvalavida/salt.gpx" Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(gpxfURI,"text/xml"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); //debug->"Intent { act=android.intent.action.VIEW dat=content://es.vyvalavida.excursions.provider/external_files/vyvalavida/salt.gpx typ=text/xml flg=0x10000001 }" 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-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/c41c8d1d-2de4-4774-a2d5-7f81a1727fd5%40googlegroups.com.
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "24.0.1" defaultConfig { applicationId "es.puigverd.puigverd" minSdkVersion 19 targetSdkVersion 25 versionCode 42 versionName "18/Octubre/2016" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:25.0.0' }y la versión que NO funciona:
apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "21.1.2" defaultConfig { applicationId "es.vyvalavida.excursions" minSdkVersion 18 targetSdkVersion 24 versionCode 9 versionName "07_/05/2016" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.1.1' }
--
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-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/3a5d5730-be54-2185-0f5f-132a3d1f544e%40gmail.com.
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<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>
<?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>
<external-path name="myfiles" path="vyvalavida/" />
--
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-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/519da532-51b6-4d93-b093-f301d68401f9%40googlegroups.com.
<files-path name="external_files" path="vyvalavida/"/>
En este caso NO funciona, pero si que me ha dado un mensaje de error el logcat, aunque no consigo arreglarlo:
11-27 06:18:22.111 8969-8969/es.vyvalavida.excursions D/AndroidRuntime: Shutting down VM
11-27 06:18:22.112 8969-8969/es.vyvalavida.excursions E/AndroidRuntime: FATAL EXCEPTION: main
Process: es.vyvalavida.excursions, PID: 8969
java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/vyvalavida/penal.gpx
at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:679)
at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:378)
at es.vyvalavida.excursions.laExcursion.Orux_gpx(laExcursion.java:275)
at es.vyvalavida.excursions.laExcursion$cnxGpx.onPostExecute(laExcursion.java:200)
at es.vyvalavida.excursions.laExcursion$cnxGpx.onPostExecute(laExcursion.java:172)
at android.os.AsyncTask.finish(AsyncTask.java:660)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:677)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
<files-path name="name" path="ruta/" />
Context.getFilesDir()
<external-files-path name="name" path="path" />
Context.getExternalFilesDir()
WRITE_EXTERNAL_STORAGE
y/o
READ_EXTERNAL_STORAGE
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="vyvalavida/"/>
</paths>
void Orux_gpx(String pGpx){
String ruta = Environment.getExternalStorageDirectory() + File.separator + "vyvalavida";
File miGpx = new File(ruta, pGpx);
Uri gpxfURI = FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName() + ".provider", miGpx);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(gpxfURI,"text/xml");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
startActivity(intent);
//finish();
<external-path name="external_files" path="./"/>
tambien va perfecto
Si cambio la carpeta a "Download"y en el xml tengo:<external-path name="external_files" path="vyvalavida/"/>da error y si sale el logcat.**NOTA: tengo instalada la aplicación de telegram (parecida al wastapp) y cuando me mandan un archivo gpx, para el orux, ocurre lo mismo que en mi app, el orux se abre pero no carga el archivo.
--
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/0f60814e-17b7-41a9-b6c5-2a64ca3c902a%40googlegroups.com.