Buenas como siempre, Espero que estén todos bien.
Recurro a vosotros por que estoy atrancado.
Estoy intentando ABRIR un Excel, el cual creo y muestro en un Table. pero no me va, pensaba que era por que lo abria justo despues de generar le Table, pero me he puesto un boton directamente para abrir el fichero y no hay manera, lo intento de dos modos.
El fichero esta en la ruta /storage/emulated/0/archivo_04-11-2022.xls"
Los dos modos que uso son
Con el primer método escojo el programa con el que abrir, pero me dice que he de cerrar el EXCEL y guardarlo antes. de hay que pensara que el error era al abrirlo al crear el table.
Pero incluso poniéndolo en un botón directamente y el exel ya existiendo me lo dice
con el 2º me da java.lang.RuntimeException: Object should first be initialized (Intent).
Os pongo el Manifest, resumido los permisos de almacenamiento
gracias por vuestro tiempo
Recurro a vosotros por que estoy atrancado.
Estoy intentando ABRIR un Excel, el cual creo y muestro en un Table. pero no me va, pensaba que era por que lo abria justo despues de generar le Table, pero me he puesto un boton directamente para abrir el fichero y no hay manera, lo intento de dos modos.
El fichero esta en la ruta /storage/emulated/0/archivo_04-11-2022.xls"
Los dos modos que uso son
PROVIDER:
Dim ruta As String ="/storage/emulated/0"
Dim archivo As String ="archivo_04-11-2022.xls"
Dim uri As String
Dim ik As Intent
uri = File.Combine(ruta,"/" & archivo)
Log(uri)
ik.Initialize(ik.ACTION_VIEW, uri)
ik.SetType("application/vnd.ms-excel")
ik.WrapAsIntentChooser("Escoge Programa para Abrir")
StartActivity(ik)
'-------------- 2 MODO --------------------------------
Dim archivo As String ="archivo_04-11-2022.xls"
provider.Initialize
File.Copy(File.DirRootExternal&"/", archivo, provider.SharedFolder, archivo)
'File.Copy(ruta, archivo, provider.SharedFolder, archivo)
Dim in As Intent
provider.SetFileUriAsIntentData(in, archivo)
'Type must be set after calling SetFileUriAsIntentData
in.SetType("application/xls")
StartActivity(in)
Con el primer método escojo el programa con el que abrir, pero me dice que he de cerrar el EXCEL y guardarlo antes. de hay que pensara que el error era al abrirlo al crear el table.
Pero incluso poniéndolo en un botón directamente y el exel ya existiendo me lo dice
con el 2º me da java.lang.RuntimeException: Object should first be initialized (Intent).
Os pongo el Manifest, resumido los permisos de almacenamiento
Manifest:
AddManifestText(
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="29"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
CreateResourceFromFile(Macro, Themes.LightTheme)
'End of default text.
CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)
'**** instalar apk
AddApplicationText(
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="$PACKAGE$.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
)
CreateResource(xml, provider_paths,
<files-path name="name" path="shared" />
)
SetApplicationAttribute(android:requestLegacyExternalStorage, true) ' de sdk 28 para abajo
AddPermission(android.permission.READ_EXTERNAL_STORAGE) ' Allows an application to read from external storage.
'AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)
gracias por vuestro tiempo