首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在xamarin android中使用使用统计管理器查看正在运行的应用程序列表

如何在xamarin android中使用使用统计管理器查看正在运行的应用程序列表
EN

Stack Overflow用户
提问于 2020-11-06 20:54:13
回答 1查看 419关注 0票数 0

我似乎找不到任何好的资源来展示如何在c#中使用UsageStatsManager来获取所有正在运行的应用程序的列表。我已经看到活动管理器和get running tasks在Lollipop之后的版本中不再有效,我正在尝试创建一个需要这些信息的任务管理器应用程序。

我已经使用了:

代码语言:javascript
运行
复制
        UsageStatsManager usageStatsManager = (UsageStatsManager)context.ApplicationContext.GetSystemService("usagestats");
        long time = TimeUtils.CurrentTimeMillis();
        long beginTime = time - 1000 * 10;


        List<UsageStats> stats = usageStatsManager.QueryUsageStats(UsageStatsInterval.Daily, beginTime, time).ToList<UsageStats>();

        foreach (var item in stats)
        {
            serviceInfo.Add(item.PackageName);
        }

使用TimeUtils作为:

代码语言:javascript
运行
复制
    public class TimeUtils
    {
        private static readonly DateTime Jan1st1970 = new DateTime
        (1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

        public static long CurrentTimeMillis()
        {
            return (long)(DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
        }
    }

这返回null,我不确定这是否可能是权限错误?我正在使用Package_Usage_stats的用户权限:

使用-权限android:name="android.permission.PACKAGE_USAGE_STATS“

任何帮助都将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2020-11-06 22:47:58

在使用UsageStatsManager接口时,设备的用户仍然需要通过设置应用程序授予权限,即使权限已经解除。

查看文档:

https://developer.android.com/reference/android/app/usage/UsageStatsManager

您可以通过以下代码引导用户打开使用访问设置页面。

代码语言:javascript
运行
复制
btn.Click += (sender, e) =>
{
    StartActivity(new Intent(Android.Provider.Settings.ActionUsageAccessSettings));
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64715057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档