xonecode 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +167 -0
  2. package/dist/agent/authEnDisco.js +56 -0
  3. package/dist/agent/authEnDisco.js.map +1 -0
  4. package/dist/agent/configEnDisco.js +109 -0
  5. package/dist/agent/configEnDisco.js.map +1 -0
  6. package/dist/agent/crearProyecto.js +34 -0
  7. package/dist/agent/crearProyecto.js.map +1 -0
  8. package/dist/agent/entorno.js +124 -0
  9. package/dist/agent/entorno.js.map +1 -0
  10. package/dist/agent/guionizado.js +53 -0
  11. package/dist/agent/guionizado.js.map +1 -0
  12. package/dist/agent/instantanea.js +129 -0
  13. package/dist/agent/instantanea.js.map +1 -0
  14. package/dist/agent/interrupts.js +83 -0
  15. package/dist/agent/interrupts.js.map +1 -0
  16. package/dist/agent/mensajes.js +24 -0
  17. package/dist/agent/mensajes.js.map +1 -0
  18. package/dist/agent/modelos.js +42 -0
  19. package/dist/agent/modelos.js.map +1 -0
  20. package/dist/agent/normalizar.js +20 -0
  21. package/dist/agent/normalizar.js.map +1 -0
  22. package/dist/agent/perfiles.js +103 -0
  23. package/dist/agent/perfiles.js.map +1 -0
  24. package/dist/agent/proyecto.js +107 -0
  25. package/dist/agent/proyecto.js.map +1 -0
  26. package/dist/agent/puente.js +142 -0
  27. package/dist/agent/puente.js.map +1 -0
  28. package/dist/agent/resumenDeTool.js +48 -0
  29. package/dist/agent/resumenDeTool.js.map +1 -0
  30. package/dist/agent/skills.js +65 -0
  31. package/dist/agent/skills.js.map +1 -0
  32. package/dist/agent/textoDeTool.js +113 -0
  33. package/dist/agent/textoDeTool.js.map +1 -0
  34. package/dist/agent/turnoReal.js +173 -0
  35. package/dist/agent/turnoReal.js.map +1 -0
  36. package/dist/agent/verificador.js +65 -0
  37. package/dist/agent/verificador.js.map +1 -0
  38. package/dist/agent/xoneAgent.js +106 -0
  39. package/dist/agent/xoneAgent.js.map +1 -0
  40. package/dist/bin.js +9 -0
  41. package/dist/bin.js.map +1 -0
  42. package/dist/cli/aprobar.js +82 -0
  43. package/dist/cli/aprobar.js.map +1 -0
  44. package/dist/cli/config.js +133 -0
  45. package/dist/cli/config.js.map +1 -0
  46. package/dist/cli/consola.js +346 -0
  47. package/dist/cli/consola.js.map +1 -0
  48. package/dist/cli/describe.js +53 -0
  49. package/dist/cli/describe.js.map +1 -0
  50. package/dist/cli/doctor.js +45 -0
  51. package/dist/cli/doctor.js.map +1 -0
  52. package/dist/cli/main.js +520 -0
  53. package/dist/cli/main.js.map +1 -0
  54. package/dist/cli/markdown.js +90 -0
  55. package/dist/cli/markdown.js.map +1 -0
  56. package/dist/cli/run.js +164 -0
  57. package/dist/cli/run.js.map +1 -0
  58. package/dist/cli/spinner.js +89 -0
  59. package/dist/cli/spinner.js.map +1 -0
  60. package/dist/cli/stdio.js +193 -0
  61. package/dist/cli/stdio.js.map +1 -0
  62. package/dist/cli/tema.js +40 -0
  63. package/dist/cli/tema.js.map +1 -0
  64. package/dist/cli/verify.js +62 -0
  65. package/dist/cli/verify.js.map +1 -0
  66. package/dist/core/bitacora.js +30 -0
  67. package/dist/core/bitacora.js.map +1 -0
  68. package/dist/core/config.js +236 -0
  69. package/dist/core/config.js.map +1 -0
  70. package/dist/core/contextos.js +56 -0
  71. package/dist/core/contextos.js.map +1 -0
  72. package/dist/core/deps.js +51 -0
  73. package/dist/core/deps.js.map +1 -0
  74. package/dist/core/diff.js +79 -0
  75. package/dist/core/diff.js.map +1 -0
  76. package/dist/core/esqueleto.js +366 -0
  77. package/dist/core/esqueleto.js.map +1 -0
  78. package/dist/core/events.js +2 -0
  79. package/dist/core/events.js.map +1 -0
  80. package/dist/core/modelos.js +85 -0
  81. package/dist/core/modelos.js.map +1 -0
  82. package/dist/core/notify.js +106 -0
  83. package/dist/core/notify.js.map +1 -0
  84. package/dist/core/ports.js +114 -0
  85. package/dist/core/ports.js.map +1 -0
  86. package/dist/core/turno.js +127 -0
  87. package/dist/core/turno.js.map +1 -0
  88. package/dist/vendor/hitl.js +103 -0
  89. package/dist/vendor/hitl.js.map +1 -0
  90. package/dist/vendor/skillLoaders/catalog.js +74 -0
  91. package/dist/vendor/skillLoaders/catalog.js.map +1 -0
  92. package/dist/vendor/tokenTracking.js +58 -0
  93. package/dist/vendor/tokenTracking.js.map +1 -0
  94. package/package.json +41 -0
  95. package/skills/xone-debugging/SKILL.md +52 -0
  96. package/skills/xone-debugging/references/faq.md +561 -0
  97. package/skills/xone-debugging/references/troubleshooting-y-glosario.md +429 -0
  98. package/skills/xone-development/SKILL.md +105 -0
  99. package/skills/xone-development/references/anti-patrones.md +94 -0
  100. package/skills/xone-development/references/css/atributos-por-categoria.md +509 -0
  101. package/skills/xone-development/references/css/buenas-practicas-y-parser.md +419 -0
  102. package/skills/xone-development/references/css/dinamicos-cascada-y-componentes.md +550 -0
  103. package/skills/xone-development/references/css/patrones-material-y-temas.md +1140 -0
  104. package/skills/xone-development/references/css/propiedades-y-herencia.md +885 -0
  105. package/skills/xone-development/references/css/selectores-unidades-colores.md +840 -0
  106. package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +457 -0
  107. package/skills/xone-development/references/datos/appdata.md +611 -0
  108. package/skills/xone-development/references/datos/http-sqlmanager-y-crypto.md +720 -0
  109. package/skills/xone-development/references/datos/http.md +366 -0
  110. package/skills/xone-development/references/datos/oauth2-y-replica.md +156 -0
  111. package/skills/xone-development/references/device/biometria-imagedrawing-y-otros.md +544 -0
  112. package/skills/xone-development/references/device/objetos-de-dispositivo.md +583 -0
  113. package/skills/xone-development/references/device/systemsettings-referencia-ampliada.md +396 -0
  114. package/skills/xone-development/references/device/systemsettings-y-permisos.md +342 -0
  115. package/skills/xone-development/references/fundamentos/conceptos-clave.md +695 -0
  116. package/skills/xone-development/references/fundamentos/configuracion-app-xml-ini-mappings.md +668 -0
  117. package/skills/xone-development/references/fundamentos/errores-comunes.md +312 -0
  118. package/skills/xone-development/references/fundamentos/navegacion-convenciones-y-primer-proyecto.md +576 -0
  119. package/skills/xone-development/references/fundamentos/plataforma-y-anatomia-de-proyecto.md +387 -0
  120. package/skills/xone-development/references/indice-completo.md +77 -0
  121. package/skills/xone-development/references/javascript/coleccion-error-y-usuario.md +260 -0
  122. package/skills/xone-development/references/javascript/debugging-y-best-practices.md +245 -0
  123. package/skills/xone-development/references/javascript/metodos-de-los-controles.md +556 -0
  124. package/skills/xone-development/references/javascript/metodos-nativos-de-la-vista.md +114 -0
  125. package/skills/xone-development/references/javascript/motor-js-y-contexto-de-ejecucion.md +319 -0
  126. package/skills/xone-development/references/javascript/objeto-ai-llm-en-dispositivo.md +358 -0
  127. package/skills/xone-development/references/javascript/objetos-creables-a-m.md +527 -0
  128. package/skills/xone-development/references/javascript/objetos-creables-n-z.md +385 -0
  129. package/skills/xone-development/references/javascript/patrones-criticos-seguridad-y-rendimiento.md +595 -0
  130. package/skills/xone-development/references/javascript/patrones-de-navegacion-datos-y-codigo.md +751 -0
  131. package/skills/xone-development/references/javascript/patrones-de-ui-voz-integracion-y-seguridad.md +701 -0
  132. package/skills/xone-development/references/javascript/plantillas-y-funciones-utilitarias.md +647 -0
  133. package/skills/xone-development/references/javascript/self-y-dataobject.md +449 -0
  134. package/skills/xone-development/references/javascript/singletons-globales.md +361 -0
  135. package/skills/xone-development/references/javascript/ui-catalogo-de-metodos.md +464 -0
  136. package/skills/xone-development/references/javascript/ui-gps-camara-y-multimedia.md +506 -0
  137. package/skills/xone-development/references/javascript/ui-navegacion-mensajes-y-vista.md +422 -0
  138. package/skills/xone-development/references/resumen-js-datos-dispositivo.md +80 -0
  139. package/skills/xone-development/references/resumen-xml-y-css.md +74 -0
  140. package/skills/xone-development/references/tipos-de-prop.md +28 -0
  141. package/skills/xone-development/references/xml-ui/asfilter-visibilidad-eventos-y-macros.md +576 -0
  142. package/skills/xone-development/references/xml-ui/atributos-coll-group-frame.md +235 -0
  143. package/skills/xone-development/references/xml-ui/atributos-method-macro-script-event-app.md +244 -0
  144. package/skills/xone-development/references/xml-ui/atributos-prop.md +439 -0
  145. package/skills/xone-development/references/xml-ui/contents-y-macros.md +392 -0
  146. package/skills/xone-development/references/xml-ui/errores-comunes-xml.md +245 -0
  147. package/skills/xone-development/references/xml-ui/estructura-y-nodo-coll.md +326 -0
  148. package/skills/xone-development/references/xml-ui/eventos-ciclo-de-vida-e-interaccion.md +704 -0
  149. package/skills/xone-development/references/xml-ui/eventos-sistema-login-y-personalizados.md +944 -0
  150. package/skills/xone-development/references/xml-ui/layouts-herencia-y-buenas-practicas.md +618 -0
  151. package/skills/xone-development/references/xml-ui/mapas.md +685 -0
  152. package/skills/xone-development/references/xml-ui/mappings-y-colecciones-separadas.md +148 -0
  153. package/skills/xone-development/references/xml-ui/nodos-group-y-frame.md +666 -0
  154. package/skills/xone-development/references/xml-ui/patrones-de-pantalla.md +643 -0
  155. package/skills/xone-development/references/xml-ui/prop-atributos-y-condiciones.md +298 -0
  156. package/skills/xone-development/references/xml-ui/prop-tipos-basicos.md +493 -0
  157. package/skills/xone-development/references/xml-ui/prop-tipos-combos-y-controles.md +664 -0
  158. package/skills/xone-development/references/xml-ui/prop-tipos-listas-y-mapas.md +412 -0
  159. package/skills/xone-plan-builder/SKILL.md +183 -0
  160. package/skills/xone-plan-builder/agents/openai.yaml +5 -0
  161. package/skills/xone-plan-builder/references/TASKS-FORMAT.md +132 -0
  162. package/skills/xone-project-generator/SKILL.md +111 -0
  163. package/skills/xone-project-generator/references/canonical-sizes.md +292 -0
  164. package/skills/xone-project-generator/references/colecciones-base.md +16 -0
  165. package/skills/xone-project-generator/references/convenciones-de-nombres.md +16 -0
  166. package/skills/xone-project-generator/references/ejemplos-por-sector-y-prohibiciones.md +140 -0
  167. package/skills/xone-project-generator/references/fase-3-estilos-css.md +597 -0
  168. package/skills/xone-project-generator/references/fase-6-colecciones.md +762 -0
  169. package/skills/xone-project-generator/references/fase-7-asfilter-e-integraciones.md +142 -0
  170. package/skills/xone-project-generator/references/fase-7-entidades-y-estructura-de-pantalla.md +494 -0
  171. package/skills/xone-project-generator/references/fase-7-plantilla-consola.md +477 -0
  172. package/skills/xone-project-generator/references/fase-7-plantillas-de-pantalla.md +302 -0
  173. package/skills/xone-project-generator/references/fase-7-viewmodes-graficos-y-listas.md +681 -0
  174. package/skills/xone-project-generator/references/fase-7-viewmodes-mapa-y-calendario.md +479 -0
  175. package/skills/xone-project-generator/references/fases-0-2-analisis-y-modelo-de-datos.md +350 -0
  176. package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +194 -0
  177. package/skills/xone-project-generator/references/fases-4-5-estructura-y-configuracion.md +587 -0
  178. package/skills/xone-project-generator/references/fases-8-9-eventos-y-javascript.md +861 -0
  179. package/skills/xone-project-generator/references/flujo-de-generacion.md +67 -0
  180. package/skills/xone-project-generator/references/plantillas-estandar.md +98 -0
  181. package/skills/xone-project-generator/references/tamanos-canonicos.md +49 -0
  182. package/skills/xone-review/SKILL.md +189 -0
  183. package/skills/xone-spec-builder/SKILL.md +235 -0
  184. package/skills/xone-spec-builder/agents/openai.yaml +5 -0
  185. package/skills/xone-spec-builder/references/ADR-FORMAT.md +55 -0
  186. package/skills/xone-spec-builder/references/CONTEXT-FORMAT.md +42 -0
  187. package/skills/xone-spec-builder/references/PLAN-FORMAT.md +120 -0
@@ -0,0 +1,342 @@
1
+ # XOne — systemSettings: permisos, estado del sistema y MDM
2
+
3
+ > Fuente: `xone/v2/xone-help-docs/topics/03d-js-createobject.md` §8.11b. Referencia de la skill; el índice está en [../../SKILL.md](../../SKILL.md).
4
+
5
+ Contenido: §8.11b systemSettings: permisos en runtime con futures, brillo, red, batería, memoria y espacio, hardware, rutas, MDM, XOneLive e Intune
6
+
7
+ ---
8
+
9
+ ### 8.11b systemSettings - Configuración y Estado del Sistema
10
+
11
+ `systemSettings` es un **singleton global** — no requiere instanciacion. Solo Android salvo indicacion expresa.
12
+
13
+ #### Pantalla y brillo
14
+
15
+ ```javascript
16
+ systemSettings.setBrightness(75); // 0-100
17
+ let nBrillo = systemSettings.getBrightness(); // 0-100
18
+ systemSettings.setBrightnessMode("automatic"); // Brillo automático
19
+ systemSettings.setBrightnessMode("manual"); // Brillo manual
20
+ let sModo = systemSettings.getBrightnessMode(); // "manual" o "automatic"
21
+
22
+ // Color de la barra de estado
23
+ let ventana = ui.getView(self);
24
+ ventana.setStatusBarColor("#1565C0"); // Color RRGGBB
25
+ ventana.setStatusBarColor(null); // Restaurar color por defecto
26
+ ```
27
+
28
+ #### Red y conectividad
29
+
30
+ ```javascript
31
+ let bAvion = systemSettings.isAirplaneMode();
32
+ let bDatosMov = systemSettings.isMobileDataEnabled(); // Puede mentir en algunos dispositivos
33
+ let bHttp = systemSettings.isClearTextTrafficAllowed();
34
+
35
+ // Hora de red NTP
36
+ let fecha = systemSettings.getNetworkTime();
37
+ // Con servidor personalizado:
38
+ // let fecha = systemSettings.getNetworkTime({ ntpServer: "time.google.com" });
39
+
40
+ // Proveedores de localización disponibles
41
+ let bLoc = systemSettings.hasLocationFeature();
42
+ let bRed = systemSettings.hasNetworkLocationFeature();
43
+ let bGps = systemSettings.hasGpsLocationFeature();
44
+ ```
45
+
46
+ #### Batería y optimizaciones
47
+
48
+ ```javascript
49
+ let bExenta = systemSettings.isIgnoringBatteryOptimizations();
50
+
51
+ // Pedir exencion de optimizaciones de bateria
52
+ if (!systemSettings.isIgnoringBatteryOptimizations()) {
53
+ systemSettings.requestIgnoreBatteryOptimizations(true);
54
+ }
55
+
56
+ // Optimizaciones especificas de fabricante
57
+ systemSettings.requestIgnoreSpecialBatteryOptimizations();
58
+ ```
59
+
60
+ #### Permisos en runtime
61
+
62
+ ```javascript
63
+ // Consultar permisos
64
+ let aTodos = systemSettings.getDeclaredPermissions();
65
+ let aConcedidos = systemSettings.getGrantedPermissions();
66
+ let aNoConcedidos = systemSettings.getNotGrantedPermissions();
67
+
68
+ // Comprobar permiso (nombre corto XOne o nombre completo Android)
69
+ let bCamara = systemSettings.isPermissionGranted("camera");
70
+ let bBateria = systemSettings.isPermissionGranted("android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS");
71
+
72
+ // Solicitar permisos en runtime — future.get() bloquea hasta respuesta del usuario
73
+ let future = systemSettings.requestPermissions({
74
+ requestMessage: "Habilite estos permisos para usar la aplicación",
75
+ mandatory : false,
76
+ permissions : ["bluetooth"]
77
+ });
78
+ let bConcedidos = future.get();
79
+
80
+ // Revocar permisos (Android >= 13) — devuelve el propio systemSettings (encadenable)
81
+ systemSettings.revokePermissions("microphone", "camera");
82
+
83
+ // Permisos especiales (cada uno devuelve un Future)
84
+ let futureStorage = systemSettings.requestExternalStoragePermission();
85
+ let bStorage = futureStorage.get();
86
+
87
+ // Overlay (dibujar sobre otras apps): primero consultar, después solicitar
88
+ let bOverlay = systemSettings.hasOverlayPermission();
89
+ if (!bOverlay) {
90
+ let futureOverlay = systemSettings.requestOverlayPermission();
91
+ bOverlay = futureOverlay.get();
92
+ }
93
+
94
+ let futureAlarm = systemSettings.requestScheduleExactAlarmPermission();
95
+ let bAlarm = futureAlarm.get();
96
+
97
+ // Auto-revocacion de permisos
98
+ if (systemSettings.isPermissionAutoRevokeEnabled()) {
99
+ systemSettings.requestDisablePermissionAutoRevoke();
100
+ }
101
+
102
+ let bManager = systemSettings.isExternalStorageManager();
103
+ ```
104
+
105
+ #### Memoria y rendimiento
106
+
107
+ ```javascript
108
+ // Nivel de memoria actual
109
+ let sLevel = systemSettings.getMemoryLevel();
110
+ // Valores: "background", "moderate", "ui_hidden",
111
+ // "running_moderate", "running_low", "running_critical", "complete"
112
+
113
+ try {
114
+ let sNivel = systemSettings.getMemoryLevel();
115
+ if (sNivel === "running_low" || sNivel === "running_critical" || sNivel === "complete") {
116
+ ui.showToast("El dispositivo se esta quedando sin memoria");
117
+ }
118
+ } catch(err) { /* puede no estar disponible en todas las versiones */ }
119
+
120
+ // Memoria de la JVM (en bytes)
121
+ let nMax = systemSettings.getMaxMemory();
122
+ let nFree = systemSettings.getFreeMemory();
123
+
124
+ // RAM física del dispositivo (en bytes)
125
+ let nRamTotal = systemSettings.getTotalMemory(); // RAM física total instalada
126
+ let nRamLibre = systemSettings.getAvailableMemory(); // RAM física disponible ahora
127
+
128
+ // Espacio en disco (en bytes) — útil antes de descargas/exportaciones grandes
129
+ let nDiscoLibre = systemSettings.getInternalFreeSpace(); // libre en almacenamiento interno (app + BD)
130
+ let nDiscoTotal = systemSettings.getInternalTotalSpace(); // total del almacenamiento interno
131
+ let nExtLibre = systemSettings.getExternalFreeSpace(); // libre en almacenamiento externo (0 si no está montado)
132
+ let nExtTotal = systemSettings.getExternalTotalSpace(); // total del almacenamiento externo
133
+
134
+ let nMbLibres = Math.round(systemSettings.getInternalFreeSpace() / 1024 / 1024);
135
+ if (nMbLibres < 100) {
136
+ ui.showToast("Quedan solo " + nMbLibres + " MB libres en disco");
137
+ }
138
+
139
+ systemSettings.garbageCollect(); // Devuelve el propio systemSettings (encadenable)
140
+ systemSettings.clearAllAppsCache();
141
+ systemSettings.clearApplicationData();
142
+ systemSettings.clearJavascriptCache();
143
+ systemSettings.clearBitmapCache();
144
+ systemSettings.mergeJavascriptCache(); // Compacta los .dex cacheados del motor JS
145
+ ```
146
+
147
+ #### Información del dispositivo y hardware
148
+
149
+ ```javascript
150
+ // Fabricante, modelo y marca del dispositivo
151
+ let sFabricante = systemSettings.getManufacturer(); // ej: "samsung"
152
+ let sModelo = systemSettings.getDeviceModel(); // ej: "SM-G991B"
153
+ let sMarca = systemSettings.getBrand(); // ej: "samsung"
154
+ // (equivalen a las macros globales ##DEVICE_MANUFACTURER## y ##DEVICE_MODEL##)
155
+
156
+ // IDs de hardware
157
+ let ids = systemSettings.getHardwareIds();
158
+ // ids.deviceIdCount, ids.deviceId0, ids.deviceId1, ... (IMEI)
159
+ // ids.wifiMacAddress, ids.androidId
160
+
161
+ let sDeviceId = systemSettings.getDeviceId();
162
+ systemSettings.setDeviceId("nuevo_id");
163
+
164
+ // Dispositivo con PIN/patron/password de bloqueo configurado
165
+ // Si la app es Device Owner / Profile Owner consulta DevicePolicyManager,
166
+ // si no, usa KeyguardManager.isDeviceSecure().
167
+ let bSecured = systemSettings.isPasswordSecured();
168
+
169
+ // Tiempo encendido del dispositivo
170
+ let uptime = systemSettings.getDeviceUptime();
171
+ // uptime.ms, uptime.days, uptime.hours, uptime.minutes
172
+
173
+ // Hardware disponible
174
+ let aFeatures = systemSettings.getFeatures();
175
+
176
+ // Teclado fisico
177
+ let bTeclado = systemSettings.hasHardwareKeyboard();
178
+ let bQwerty = systemSettings.hasQwertyKeyboard();
179
+ let b12Teclas = systemSettings.hasTwelveKeysKeyboard();
180
+
181
+ // Arquitectura del proceso
182
+ let b64Bit = systemSettings.is64Bit();
183
+
184
+ // Nombres de la app
185
+ let sPackage = systemSettings.getPackageName();
186
+ let sSharedUserId= systemSettings.getSharedUserId();
187
+ ```
188
+
189
+ #### Versiones de SO y de la app
190
+
191
+ ```javascript
192
+ let nApiLevel = systemSettings.getApiLevel(); // API level del SO (Build.VERSION.SDK_INT)
193
+ let sAndroidVer = systemSettings.getAndroidVersion(); // Build.VERSION.RELEASE (ej: "14")
194
+ let nTargetSdk = systemSettings.getTargetSdkVersion(); // targetSdk del APK
195
+ let nMinSdk = systemSettings.getMinSdkVersion(); // minSdk del APK (Android >= 7 / API 24)
196
+ let nVersionCode = systemSettings.getVersionCode(); // versionCode del APK instalado
197
+ ```
198
+
199
+ #### Proceso del sistema
200
+
201
+ ```javascript
202
+ let nPid = systemSettings.getPid(); // ID del proceso actual (Process.myPid)
203
+ let nUid = systemSettings.getUid(); // UID Linux del proceso (Process.myUid)
204
+ let nTid = systemSettings.getTid(); // ID del hilo actual (Process.myTid)
205
+ let nPriority = systemSettings.getThreadPriority(); // Prioridad nice del hilo actual
206
+
207
+ systemSettings.killProcess(nPid); // Mata el proceso indicado (uso avanzado)
208
+ ```
209
+
210
+ #### Rutas del sistema de ficheros
211
+
212
+ ```javascript
213
+ let sExternal = systemSettings.getExternalStoragePath();
214
+ let sGaleria = systemSettings.getGalleryPath();
215
+ let sDocumentos = systemSettings.getDocumentsPath();
216
+ let sMusica = systemSettings.getMusicPath();
217
+ let sDescargas = systemSettings.getDownloadsPath();
218
+ let sCapturas = systemSettings.getScreenshotsPath();
219
+ let sTonos = systemSettings.getRingtonesPath();
220
+ let sAlarmas = systemSettings.getAlarmsPath();
221
+ ```
222
+
223
+ #### Wallpaper
224
+
225
+ ```javascript
226
+ systemSettings.setWallpaper("wallpaper.png");
227
+ systemSettings.getWallpaper(appData.getAppPath() + "files/wallpaper_guardado.png");
228
+ ```
229
+
230
+ #### Acceso directo en pantalla de inicio
231
+
232
+ ```javascript
233
+ systemSettings.addPinShortcut({
234
+ id : 1000,
235
+ label: "Mi acceso directo",
236
+ icon : "icono.png",
237
+ extras: { parametro1: "valor1" }
238
+ });
239
+ ```
240
+
241
+ #### Estado de la app y restricciones
242
+
243
+ ```javascript
244
+ let bRestringida = systemSettings.isBackgroundRestricted();
245
+ let bDatosRestr = systemSettings.isBackgroundDataDisabled();
246
+ let bInactiva = systemSettings.isAppInactive();
247
+ let sRestriction = systemSettings.getAppRestrictionStatus();
248
+ systemSettings.showAppSettingsWindow(); // Devuelve el propio systemSettings (encadenable)
249
+
250
+ // Actualizacion desde Google Play
251
+ let bUpdate = systemSettings.checkMarketUpdate();
252
+ // let bUpdate = systemSettings.checkMarketUpdate("flexible"); // Posponer
253
+ if (bUpdate) { return; }
254
+ ```
255
+
256
+ #### Perfil de trabajo y MDM
257
+
258
+ ```javascript
259
+ let bWorkProfile = systemSettings.isRunningInWorkProfile(); // MDM perfil trabajo
260
+ let bDeviceOwner = systemSettings.isRunningWithDeviceOwner(); // MDM kiosko
261
+ let bHayMdm = systemSettings.isRunningInMdm();
262
+ let bIntune = systemSettings.isRunningInMdm("com.microsoft.windowsintune.companyportal");
263
+ let bXoneMdm = systemSettings.isRunningInMdm("com.xone.live.services");
264
+ ```
265
+
266
+ #### XOneLive
267
+
268
+ ```javascript
269
+ systemSettings.enableReplicatorWidget();
270
+ systemSettings.disableReplicatorWidget();
271
+ systemSettings.enableLiveWidget();
272
+ systemSettings.disableLiveWidget();
273
+ let jsConfig = systemSettings.getLiveConfig(); // Objeto JS con config actual de XOneLive
274
+ ```
275
+
276
+ #### Depuracion e integridad
277
+
278
+ ```javascript
279
+ let bIntegro = systemSettings.isDeviceIntegrityOk(); // Detecta root/emulador
280
+ let sToken = systemSettings.getIntegrityToken("nonce_unico"); // Token Google Play
281
+ let bDebugger = systemSettings.isDebuggerConnected();
282
+ appData.setDebugMode(!appData.isDebugMode());
283
+ ```
284
+
285
+ #### Accesibilidad
286
+
287
+ ```javascript
288
+ let bAccesib = systemSettings.isAccessibilityEnabled();
289
+ let bTalkBack = systemSettings.isTouchExplorationEnabled();
290
+ let bAutoStart = systemSettings.isAutoStartEnabled();
291
+ ```
292
+
293
+ #### Ajustes del sistema (propiedades directas)
294
+
295
+ ```javascript
296
+ // AUTO_TIME: hora automática de red
297
+ // Solo escribible en Android < 4.2 (SDK < 17). Superior: solo lectura.
298
+ let nSdk = appData.getGlobalMacro("##DEVICE_OSSDKCODE##");
299
+ if (nSdk < 17) {
300
+ systemSettings.AUTO_TIME = 1;
301
+ } else {
302
+ let nAutoTime = systemSettings.AUTO_TIME;
303
+ // Equivalente: systemSettings.isNetworkAutoTimeEnabled()
304
+ }
305
+ ```
306
+
307
+ #### Certificados (solo Android < 11)
308
+
309
+ ```javascript
310
+ systemSettings.installCertificate({
311
+ name: "Nombre descriptivo",
312
+ file: "certificado.pem"
313
+ });
314
+ ```
315
+
316
+ #### Intune (Microsoft Intune MDM)
317
+
318
+ ```javascript
319
+ let bCompilacion = systemSettings.isIntuneCompilation();
320
+ let sPinRequired = systemSettings.isIntunePinRequired();
321
+ let sIntuneId = systemSettings.getIntuneId();
322
+ let bOutdated = systemSettings.isIntuneAgentOutdated();
323
+ let sMsg = systemSettings.getIntuneAgentOutdatedMessage();
324
+ ```
325
+
326
+ #### Firebase Analytics
327
+
328
+ Sólo funciona si el flavor de la app incluye Firebase Analytics; en builds sin Analytics ambos métodos devuelven `false`.
329
+
330
+ ```javascript
331
+ systemSettings.setAnalyticsEnabled(true); // Activar
332
+ systemSettings.setAnalyticsEnabled(false); // Desactivar (cumplir RGPD/opt-out)
333
+
334
+ // Registrar un evento (la clave "eventTag" del objeto es el nombre del evento; el resto, parámetros)
335
+ systemSettings.logAnalyticsEvent({
336
+ eventTag : "purchase_completed",
337
+ sku : "item_001",
338
+ amount : 9.99,
339
+ currency : "EUR"
340
+ });
341
+ ```
342
+