美文网首页
在 Android L 上如何获取 TopActivity

在 Android L 上如何获取 TopActivity

作者: 二胡 | 来源:发表于2015-08-04 11:26 被阅读4781次

    从 API 21 开始,ANDROID 废弃了 ActivityManager.getRecentTasks() 方法,所以要判断手机当前是否处于桌面,只能别寻它途。
    它就是 API 21 新增的接口 android.app.usage 。这个API用于统计手机上所有APP的使用情况。

    如何使用

    • 通过下面这段代码,可以获得最近一分钟内使用过的APP的统计数据
    get-app-stat-list.png
    • 将这些数据按 “最后使用时间” 降序排列后,第一个元素即为当前在最顶层的APP
      (然后将其与系统中的 Launcher App对比,即可确定手机是否处于桌面)


      sort
    • 检查当前APP是否已经开启了“统计APP使用情况权限”(用于弹框,提示用户去设置中开启权限)


      check

    注意事项

    • 执行上述代码需要特殊的权限
      <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />

    • 声明了权限还不够,还需要在手机的 “设置 - 安全 - 有权查看使用情况的应用” 中,将自己的APP所在项开启。
      自动跳转到权限设置界面:
      startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS));

    相关文章

      网友评论

          本文标题:在 Android L 上如何获取 TopActivity

          本文链接:https://www.haomeiwen.com/subject/uumvqttx.html