0

我有一个反应本机应用程序,它需要检索用户在社交媒体相关应用程序上花费的时间。在这种情况下,它将是 facebook、instagram、tiktok 等。

我对 java/kotlin 语法不太熟悉,并且真的很难弄清楚如何实现这一点。我很确定它只是应该在反应本机代码中调用的一个函数,以检索在每个应用程序上花费的时间列表。

这是我到目前为止所拥有的。例如,我正在努力解决的问题之一是我不明白 Context 是什么。这将如何应用于 React Native?

public static HashMap<String, Double> getUsageMap(Context context, long start, long end) {
    UsageStatsManager manager = (UsageStatsManager) context.getSystemService("usagestats");
    Map<String, UsageStats> usageStatsMap = manager.queryAndAggregateUsageStats(start, end);
    HashMap<String, Double> usageMap = new HashMap<>();

    for (String packageName : usageStatsMap.keySet()) {
        UsageStats us = usageStatsMap.get(packageName);
        try {
            long timeMs = us.getTotalTimeInForeground();
            Double timeSeconds = new Double(timeMs / 1000);
            usageMap.put(packageName, timeSeconds);
        } catch (Exception e) {
            Log.d(TAG, "Getting timeInForeground resulted in an exception");
        }
    }
    return usageMap;
}

这是我想调用的 react native 组件:

import React from "react";
import { View, Text, StyleSheet, NativeModules } from "react-native";
import { Button } from "react-native-paper";

const Symptom4 = ({navigation}) => {
  const {UsageStats} = ReactNative.NativeModules;
  //const listOfVals = UsageStats.getUsageMap()
  //console.log(listOfVals)
  return (
    <View style={styles.container}>
      <Text>{/*listOfVals*/}</Text>
      <Button title="Go back" onPress={() => navigation.goBack()} />
    </View>
  );
};

const styles = StyleSheet.create({
  container: { flex: 1, justifyContent: "center", alignItems: "center", backgroundColor: 'white' }, 
});

export default Symptom4;

任何想法?帮助将不胜感激

4

0 回答 0