Android:在Kotlin中获取UsageStats

时间:2018-02-27 16:36:06

标签: java android kotlin usage-statistics

我正在尝试使用UsageStats来获取android中的统计信息,但它返回我的列表大小为ZERO。我正在使用API​​ 23.

    val statsManager = getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
    var list : MutableList<UsageStats>


   //Check if API is 21
   if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP)
    {     
       val cal = Calendar.getInstance()
       cal.add(Calendar.YEAR, -1)

      list = statsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, cal.getTimeInMillis(), System.currentTimeMillis())
    }            

 Log.d("DetailActivity","------"+list.size)

我看不出问题出在哪里。你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

您的代码是正确的,但首先您需要在清单中添加以下持久性内容:

<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>

然后确保用户通过发送此Intent来授予权限:

startActivity(Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS));

然后,只有您将被授予对UsageStatsManager的访问权。

您可以在this post

中找到更多信息