我正在尝试使用本机 api。我有以下代码来获取 5 个最常用的应用程序。它是一个带有 TypeScript 的原生 Android 模块,因为我无法使用 React Native 调用 API:
fun getUsageData(startTime: Double, endTime: Double, successCallback: Callback) {
val usageStatsManager = reactApplicationContext.getSystemService(Context.USAGE_STATS_SERVICE) as
// Query usage stats
val usageStatsList = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, startTime.toLong(), endTime.toLong())
// Sort usage stats by total time in foreground
usageStatsList.sortByDescending { it.totalTimeInForeground }
// Extract package names of top 5 used apps
val topApps: WritableArray = WritableNativeArray()
for (i in 0 until minOf(5, usageStatsList.size)) {
val packageName = usageStatsList[i].packageName
topApps.pushString(packageName)
}
// // Pass the top apps list back to React Native
successCallback.invoke(topApps)
}
但是我的列表在 Typescript 中总是为空,我不知道为什么:
LOG Top 5 used apps: []
这是我的 TypeScript 代码:
const getUsageData = () => {
const startTime = new Date().getTime() - (7 * 24 * 60 * 60 * 1000);
const endTime = new Date().getTime();
UsageStatsModule.getUsageData(Number(startTime), Number(endTime), (topApps : any) => {
console.log('Top 5 used apps:', topApps);
});
};
我不知道如何开始调试,因为我没有错误,而且我没有练习移动开发。
没有人可以帮助我吗?