(Android)检测何时启动另一个应用程序/启动所有应用程序的计数

时间:2016-05-21 12:09:06

标签: android

我想获取上次使用的其他应用的信息,或其他应用的启动时间或启动次数。 (就像使用统计信息一样)

Usage statistics information

我在这里找到了一些类似的问答。 但那些在Android M或android L中不起作用。

是否有某些方法可以获取我需要的信息?(例如,如果可以)

感谢。

1enter image description here

1enter image description here

1 个答案:

答案 0 :(得分:0)

您可以获得顶级前景应用的UsesStats。但使用此功能,用户可以分别为每个应用程序接受拒绝。 获得许可

Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);

这将返回前台应用程序..

    String topPackageName ;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService("usagestats");                       
    long time = System.currentTimeMillis(); 
    // We get usage stats for the last 10 seconds
    List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*10, time);                                    
    // Sort the stats by the last time used
    if(stats != null) {
        SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>();
        for (UsageStats usageStats : stats) {
            mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
        }                    
        if(!mySortedMap.isEmpty()) {
            topPackageName =  mySortedMap.get(mySortedMap.lastKey()).getPackageName();                                   
        }                                       
    }
}