Vai al contenuto

Per iniziare

GitHub

Puoi usare il nostro setup assistito dall'IA per installare il plugin. Aggiungi le skill Capgo al tuo strumento di IA usando il seguente comando:

Finestra del terminale
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Poi usa questo prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-android-usagestatsmanager` plugin in my project.

Se preferisci la configurazione manuale, installa il plugin con questi comandi e segui le istruzioni specifiche per la piattaforma qui sotto:

Finestra del terminale
bun add @capgo/capacitor-android-usagestatsmanager
npx cap sync
import { CapacitorUsageStatsManager } from '@capgo/capacitor-android-usagestatsmanager';
import { CapacitorUsageStatsManager } from '@capgo/capacitor-android-usagestatsmanager';
const oneDayAgo = Date.now() - 24 * 60 * 60 * 1000;
const now = Date.now();
const stats = await CapacitorUsageStatsManager.queryAndAggregateUsageStats({
beginTime: oneDayAgo,
endTime: now,
packageName: 'com.example.app',
});
for (const [packageName, usageData] of Object.entries(stats)) {
console.log(`${packageName}: ${usageData.totalTimeInForeground}ms`);
}
import { CapacitorUsageStatsManager } from '@capgo/capacitor-android-usagestatsmanager';
const startOfDay = new Date().setHours(0, 0, 0, 0);
const { stats } = await CapacitorUsageStatsManager.queryUsageStats({
intervalType: 0, // INTERVAL_DAILY
beginTime: startOfDay,
endTime: Date.now(),
packageName: 'com.example.app',
});
stats.forEach((bucket) => {
console.log(`${bucket.packageName}: ${bucket.totalTimeInForeground}ms`);
});
import { CapacitorUsageStatsManager } from '@capgo/capacitor-android-usagestatsmanager';
const startOfDay = new Date().setHours(0, 0, 0, 0);
const { events } = await CapacitorUsageStatsManager.queryEvents({
beginTime: startOfDay,
endTime: Date.now(),
packageName: 'com.example.app',
});
events.forEach((event) => {
console.log(`${event.packageName} type=${event.eventType} at ${event.timeStamp}`);
});
  • Sync nativo: run npx cap sync dopo gli aggiornamenti dei plugin.
  • Fonte di verità: fidati src/definitions.ts nel repo GitHub.

Interroga e aggrega le statistiche di utilizzo per l'intervallo di tempo specificato.

import { CapacitorUsageStatsManager } from '@capgo/capacitor-android-usagestatsmanager';
const oneDayAgo = Date.now() - 24 * 60 * 60 * 1000;
const now = Date.now();
const stats = await CapacitorUsageStatsManager.queryAndAggregateUsageStats({
beginTime: oneDayAgo,
endTime: now
});
for (const [packageName, usageData] of Object.entries(stats)) {
console.log(`${packageName}: ${usageData.totalTimeInForeground}ms`);
}

Verifica se il permesso per le statistiche di utilizzo è stato concesso.

import { CapacitorUsageStatsManager } from '@capgo/capacitor-android-usagestatsmanager';
const { granted } = await CapacitorUsageStatsManager.isUsageStatsPermissionGranted();
if (!granted) {
await CapacitorUsageStatsManager.openUsageStatsSettings();
}

Apri le impostazioni delle statistiche di utilizzo. Aprirà la schermata delle impostazioni per consentire all'utente di concedere il permesso per le statistiche di utilizzo. Questo aprirà sempre la schermata delle impostazioni, anche se il permesso è già stato concesso.

import { CapacitorUsageStatsManager } from '@capgo/capacitor-android-usagestatsmanager';
await CapacitorUsageStatsManager.openUsageStatsSettings();

Interroga tutti i pacchetti installati sul dispositivo. Richiede il permesso QUERY_ALL_PACKAGES.

import { CapacitorUsageStatsManager } from '@capgo/capacitor-android-usagestatsmanager';
const { packages } = await CapacitorUsageStatsManager.queryAllPackages();
packages.forEach(pkg => {
console.log(`${pkg.appName} (${pkg.packageName}): v${pkg.versionName}`);
});

Opzioni per interrogare le statistiche di utilizzo.

export interface UsageStatsOptions {
/**
* The inclusive beginning of the range of stats to include in the results.
* Defined in terms of "Unix time"
*/
beginTime: number;
/**
* The exclusive end of the range of stats to include in the results.
* Defined in terms of "Unix time"
*/
endTime: number;
}

Statistiche di utilizzo per un'app Android.

export interface UsageStats {
/**
* The first timestamp of the usage stats.
*/
firstTimeStamp: number;
/**
* The last timestamp of the usage stats.
*/
lastTimeStamp: number;
/**
* Only available on Android Q (API level 29) and above.
* Will be undefined on lower Android versions.
*/
lastTimeForegroundServiceUsed?: number;
/**
* The last time the app was used.
*/
lastTimeUsed: number;
/**
* Only available on Android Q (API level 29) and above.
* Will be undefined on lower Android versions.
*/
lastTimeVisible?: number;
/**
* The name of the package.
*/
packageName: string;
/**
* Only available on Android Q (API level 29) and above.
* Will be undefined on lower Android versions.
*/
totalForegroundServiceUsed?: number;
/**
* The total time the app was in the foreground.
*/
totalTimeInForeground: number;
/**
* Only available on Android Q (API level 29) and above.
* Will be undefined on lower Android versions.
*/
totalTimeVisible?: number;
}

Risultato del controllo dei permessi di usage stats.

export interface UsageStatsPermissionResult {
/**
* Whether the usage stats permission is granted.
*/
granted: boolean;
}

Rappresenta le informazioni di base su un pacchetto installato.

export interface PackageInfo {
/** Package name */
packageName: string;
/** App display name */
appName: string;
/** Version name string */
versionName: string;
/** Version code number */
versionCode: number;
/** First install time in milliseconds since epoch */
firstInstallTime: number;
/** Last update time in milliseconds since epoch */
lastUpdateTime: number;
}

Questa pagina è generata dal src/definitions.ts del plugin. Esegui nuovamente la sync quando la API pubblica cambia upstream.

Se stai usando Per iniziare per pianificare dashboard e operazioni API, connettilo a Usando @capgo/capacitor-android-usagestatsmanager per la funzionalità nativa in Usando @capgo/capacitor-android-usagestatsmanager, Panoramica API per i dettagli di implementazione in API Overview, Introduzione per i dettagli di implementazione in Introduction, Chiavi API per i dettagli di implementazione in API Keys, e Dispositivi per i dettagli di implementazione in Devices.