读取 CPU 使用率时出错:/proc/stat(权限被拒绝)

Posted

技术标签:

【中文标题】读取 CPU 使用率时出错:/proc/stat(权限被拒绝)【英文标题】:Error reading CPU usage: /proc/stat (permission denied) 【发布时间】:2019-03-17 21:12:47 【问题描述】:

附加的是我在运行应用程序后出现在 android Studio 中的错误消息。我能够在设备上构建和运行程序而没有任何问题。直到我根据 Google 的新应用要求开始针对 API 级别 26 之前,我没有收到此错误。有关如何修复错误的任何建议?另外,如果不解决此错误,将来会导致问题吗?

谢谢!

【问题讨论】:

您是否在您的设备中授予了存储权限? @CopsOnRoad,是的,我已授予存储权限。此错误来自已在 Play 商店上架一年多的应用。更新到 API 26 后,我现在才收到错误消息。 您在哪个 android 版本中收到此错误? 【参考方案1】:

使用 API 级别 26 或更高级别无法访问 /proc/stat。谷歌已将此限制为非系统应用程序。从 API 级别 26 开始,只有系统应用可以访问 /proc/stat

更多信息 https://issuetracker.google.com/issues/37140047

【讨论】:

【参考方案2】:

这意味着您之前以 API dangerous permissions。

这就是为什么您的应用程序之前运行成功的原因,而当您将其更改为 26 时,您开始出现错误。您必须在运行时使用ActivityCompat.requestPermissions(...) 询问权限

【讨论】:

谢谢,我实际上已经在运行时为危险权限请求权限。我在清单文件中请求 RECORD_AUDIO、WRITE_EXTERNAL_STORAGE、READ_INTERNAL_STORAGE 和 INTERNET 的权限。 RECORD_AUDIO 和 WRITE_EXTERNAL _STORAGE 都被认为是危险的,所以我也在运行时请求许可。但是,我不喜欢 INTERNET 或 READ_INTERNAL_STORAGE,因为它们并不危险。我确实注意到 READ_INTERNAL_STORAGE 不在 Android 8.0 的任何列表中,这不再是权限了吗?这会导致问题吗? READ_INTERNAL_STORAGE在我看来Android系统已经给你了,你不需要从Android 8.0开始指定它。

以上是关于读取 CPU 使用率时出错:/proc/stat(权限被拒绝)的主要内容,如果未能解决你的问题,请参考以下文章

linux/proc/stat计算cpu使用率

linux/proc/stat计算cpu使用率

微型Top源码剖析

linux /proc/stat 文件说明

在linux环境下,我们使用C语言编程,如何正确计算CPU使用率?(不限/proc/stat)

linux怎么看cpu使用率