React Native 模块:usageStatsManager 始终返回空列表

问题描述 投票:0回答:1

我正在尝试使用本机 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);
    });
  
};

我不知道如何开始调试,因为我没有错误,而且我没有练习移动开发。

android react-native kotlin mobile
1个回答
0
投票

没有人可以帮助我吗?

© www.soinside.com 2019 - 2024. All rights reserved.