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.
- package/README.md +167 -0
- package/dist/agent/authEnDisco.js +56 -0
- package/dist/agent/authEnDisco.js.map +1 -0
- package/dist/agent/configEnDisco.js +109 -0
- package/dist/agent/configEnDisco.js.map +1 -0
- package/dist/agent/crearProyecto.js +34 -0
- package/dist/agent/crearProyecto.js.map +1 -0
- package/dist/agent/entorno.js +124 -0
- package/dist/agent/entorno.js.map +1 -0
- package/dist/agent/guionizado.js +53 -0
- package/dist/agent/guionizado.js.map +1 -0
- package/dist/agent/instantanea.js +129 -0
- package/dist/agent/instantanea.js.map +1 -0
- package/dist/agent/interrupts.js +83 -0
- package/dist/agent/interrupts.js.map +1 -0
- package/dist/agent/mensajes.js +24 -0
- package/dist/agent/mensajes.js.map +1 -0
- package/dist/agent/modelos.js +42 -0
- package/dist/agent/modelos.js.map +1 -0
- package/dist/agent/normalizar.js +20 -0
- package/dist/agent/normalizar.js.map +1 -0
- package/dist/agent/perfiles.js +103 -0
- package/dist/agent/perfiles.js.map +1 -0
- package/dist/agent/proyecto.js +107 -0
- package/dist/agent/proyecto.js.map +1 -0
- package/dist/agent/puente.js +142 -0
- package/dist/agent/puente.js.map +1 -0
- package/dist/agent/resumenDeTool.js +48 -0
- package/dist/agent/resumenDeTool.js.map +1 -0
- package/dist/agent/skills.js +65 -0
- package/dist/agent/skills.js.map +1 -0
- package/dist/agent/textoDeTool.js +113 -0
- package/dist/agent/textoDeTool.js.map +1 -0
- package/dist/agent/turnoReal.js +173 -0
- package/dist/agent/turnoReal.js.map +1 -0
- package/dist/agent/verificador.js +65 -0
- package/dist/agent/verificador.js.map +1 -0
- package/dist/agent/xoneAgent.js +106 -0
- package/dist/agent/xoneAgent.js.map +1 -0
- package/dist/bin.js +9 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/aprobar.js +82 -0
- package/dist/cli/aprobar.js.map +1 -0
- package/dist/cli/config.js +133 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/consola.js +346 -0
- package/dist/cli/consola.js.map +1 -0
- package/dist/cli/describe.js +53 -0
- package/dist/cli/describe.js.map +1 -0
- package/dist/cli/doctor.js +45 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/main.js +520 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/markdown.js +90 -0
- package/dist/cli/markdown.js.map +1 -0
- package/dist/cli/run.js +164 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/spinner.js +89 -0
- package/dist/cli/spinner.js.map +1 -0
- package/dist/cli/stdio.js +193 -0
- package/dist/cli/stdio.js.map +1 -0
- package/dist/cli/tema.js +40 -0
- package/dist/cli/tema.js.map +1 -0
- package/dist/cli/verify.js +62 -0
- package/dist/cli/verify.js.map +1 -0
- package/dist/core/bitacora.js +30 -0
- package/dist/core/bitacora.js.map +1 -0
- package/dist/core/config.js +236 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/contextos.js +56 -0
- package/dist/core/contextos.js.map +1 -0
- package/dist/core/deps.js +51 -0
- package/dist/core/deps.js.map +1 -0
- package/dist/core/diff.js +79 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/core/esqueleto.js +366 -0
- package/dist/core/esqueleto.js.map +1 -0
- package/dist/core/events.js +2 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/modelos.js +85 -0
- package/dist/core/modelos.js.map +1 -0
- package/dist/core/notify.js +106 -0
- package/dist/core/notify.js.map +1 -0
- package/dist/core/ports.js +114 -0
- package/dist/core/ports.js.map +1 -0
- package/dist/core/turno.js +127 -0
- package/dist/core/turno.js.map +1 -0
- package/dist/vendor/hitl.js +103 -0
- package/dist/vendor/hitl.js.map +1 -0
- package/dist/vendor/skillLoaders/catalog.js +74 -0
- package/dist/vendor/skillLoaders/catalog.js.map +1 -0
- package/dist/vendor/tokenTracking.js +58 -0
- package/dist/vendor/tokenTracking.js.map +1 -0
- package/package.json +41 -0
- package/skills/xone-debugging/SKILL.md +52 -0
- package/skills/xone-debugging/references/faq.md +561 -0
- package/skills/xone-debugging/references/troubleshooting-y-glosario.md +429 -0
- package/skills/xone-development/SKILL.md +105 -0
- package/skills/xone-development/references/anti-patrones.md +94 -0
- package/skills/xone-development/references/css/atributos-por-categoria.md +509 -0
- package/skills/xone-development/references/css/buenas-practicas-y-parser.md +419 -0
- package/skills/xone-development/references/css/dinamicos-cascada-y-componentes.md +550 -0
- package/skills/xone-development/references/css/patrones-material-y-temas.md +1140 -0
- package/skills/xone-development/references/css/propiedades-y-herencia.md +885 -0
- package/skills/xone-development/references/css/selectores-unidades-colores.md +840 -0
- package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +457 -0
- package/skills/xone-development/references/datos/appdata.md +611 -0
- package/skills/xone-development/references/datos/http-sqlmanager-y-crypto.md +720 -0
- package/skills/xone-development/references/datos/http.md +366 -0
- package/skills/xone-development/references/datos/oauth2-y-replica.md +156 -0
- package/skills/xone-development/references/device/biometria-imagedrawing-y-otros.md +544 -0
- package/skills/xone-development/references/device/objetos-de-dispositivo.md +583 -0
- package/skills/xone-development/references/device/systemsettings-referencia-ampliada.md +396 -0
- package/skills/xone-development/references/device/systemsettings-y-permisos.md +342 -0
- package/skills/xone-development/references/fundamentos/conceptos-clave.md +695 -0
- package/skills/xone-development/references/fundamentos/configuracion-app-xml-ini-mappings.md +668 -0
- package/skills/xone-development/references/fundamentos/errores-comunes.md +312 -0
- package/skills/xone-development/references/fundamentos/navegacion-convenciones-y-primer-proyecto.md +576 -0
- package/skills/xone-development/references/fundamentos/plataforma-y-anatomia-de-proyecto.md +387 -0
- package/skills/xone-development/references/indice-completo.md +77 -0
- package/skills/xone-development/references/javascript/coleccion-error-y-usuario.md +260 -0
- package/skills/xone-development/references/javascript/debugging-y-best-practices.md +245 -0
- package/skills/xone-development/references/javascript/metodos-de-los-controles.md +556 -0
- package/skills/xone-development/references/javascript/metodos-nativos-de-la-vista.md +114 -0
- package/skills/xone-development/references/javascript/motor-js-y-contexto-de-ejecucion.md +319 -0
- package/skills/xone-development/references/javascript/objeto-ai-llm-en-dispositivo.md +358 -0
- package/skills/xone-development/references/javascript/objetos-creables-a-m.md +527 -0
- package/skills/xone-development/references/javascript/objetos-creables-n-z.md +385 -0
- package/skills/xone-development/references/javascript/patrones-criticos-seguridad-y-rendimiento.md +595 -0
- package/skills/xone-development/references/javascript/patrones-de-navegacion-datos-y-codigo.md +751 -0
- package/skills/xone-development/references/javascript/patrones-de-ui-voz-integracion-y-seguridad.md +701 -0
- package/skills/xone-development/references/javascript/plantillas-y-funciones-utilitarias.md +647 -0
- package/skills/xone-development/references/javascript/self-y-dataobject.md +449 -0
- package/skills/xone-development/references/javascript/singletons-globales.md +361 -0
- package/skills/xone-development/references/javascript/ui-catalogo-de-metodos.md +464 -0
- package/skills/xone-development/references/javascript/ui-gps-camara-y-multimedia.md +506 -0
- package/skills/xone-development/references/javascript/ui-navegacion-mensajes-y-vista.md +422 -0
- package/skills/xone-development/references/resumen-js-datos-dispositivo.md +80 -0
- package/skills/xone-development/references/resumen-xml-y-css.md +74 -0
- package/skills/xone-development/references/tipos-de-prop.md +28 -0
- package/skills/xone-development/references/xml-ui/asfilter-visibilidad-eventos-y-macros.md +576 -0
- package/skills/xone-development/references/xml-ui/atributos-coll-group-frame.md +235 -0
- package/skills/xone-development/references/xml-ui/atributos-method-macro-script-event-app.md +244 -0
- package/skills/xone-development/references/xml-ui/atributos-prop.md +439 -0
- package/skills/xone-development/references/xml-ui/contents-y-macros.md +392 -0
- package/skills/xone-development/references/xml-ui/errores-comunes-xml.md +245 -0
- package/skills/xone-development/references/xml-ui/estructura-y-nodo-coll.md +326 -0
- package/skills/xone-development/references/xml-ui/eventos-ciclo-de-vida-e-interaccion.md +704 -0
- package/skills/xone-development/references/xml-ui/eventos-sistema-login-y-personalizados.md +944 -0
- package/skills/xone-development/references/xml-ui/layouts-herencia-y-buenas-practicas.md +618 -0
- package/skills/xone-development/references/xml-ui/mapas.md +685 -0
- package/skills/xone-development/references/xml-ui/mappings-y-colecciones-separadas.md +148 -0
- package/skills/xone-development/references/xml-ui/nodos-group-y-frame.md +666 -0
- package/skills/xone-development/references/xml-ui/patrones-de-pantalla.md +643 -0
- package/skills/xone-development/references/xml-ui/prop-atributos-y-condiciones.md +298 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-basicos.md +493 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-combos-y-controles.md +664 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-listas-y-mapas.md +412 -0
- package/skills/xone-plan-builder/SKILL.md +183 -0
- package/skills/xone-plan-builder/agents/openai.yaml +5 -0
- package/skills/xone-plan-builder/references/TASKS-FORMAT.md +132 -0
- package/skills/xone-project-generator/SKILL.md +111 -0
- package/skills/xone-project-generator/references/canonical-sizes.md +292 -0
- package/skills/xone-project-generator/references/colecciones-base.md +16 -0
- package/skills/xone-project-generator/references/convenciones-de-nombres.md +16 -0
- package/skills/xone-project-generator/references/ejemplos-por-sector-y-prohibiciones.md +140 -0
- package/skills/xone-project-generator/references/fase-3-estilos-css.md +597 -0
- package/skills/xone-project-generator/references/fase-6-colecciones.md +762 -0
- package/skills/xone-project-generator/references/fase-7-asfilter-e-integraciones.md +142 -0
- package/skills/xone-project-generator/references/fase-7-entidades-y-estructura-de-pantalla.md +494 -0
- package/skills/xone-project-generator/references/fase-7-plantilla-consola.md +477 -0
- package/skills/xone-project-generator/references/fase-7-plantillas-de-pantalla.md +302 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-graficos-y-listas.md +681 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-mapa-y-calendario.md +479 -0
- package/skills/xone-project-generator/references/fases-0-2-analisis-y-modelo-de-datos.md +350 -0
- package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +194 -0
- package/skills/xone-project-generator/references/fases-4-5-estructura-y-configuracion.md +587 -0
- package/skills/xone-project-generator/references/fases-8-9-eventos-y-javascript.md +861 -0
- package/skills/xone-project-generator/references/flujo-de-generacion.md +67 -0
- package/skills/xone-project-generator/references/plantillas-estandar.md +98 -0
- package/skills/xone-project-generator/references/tamanos-canonicos.md +49 -0
- package/skills/xone-review/SKILL.md +189 -0
- package/skills/xone-spec-builder/SKILL.md +235 -0
- package/skills/xone-spec-builder/agents/openai.yaml +5 -0
- package/skills/xone-spec-builder/references/ADR-FORMAT.md +55 -0
- package/skills/xone-spec-builder/references/CONTEXT-FORMAT.md +42 -0
- 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
|
+
|