栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

对Jelly Bean的READ_LOGS权限(API 16)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对Jelly Bean的READ_LOGS权限(API 16)

您可以通过在应用程序中执行pm grant命令来获得对已植根设备的许可。不过,为了使更改生效,您可能必须在此之后重新启动应用程序:

String pname = getPackageName();String[] CMDLINE_GRANTPERMS = { "su", "-c", null };if (getPackageManager().checkPermission(android.Manifest.permission.READ_LOGS, pname) != 0) {    Log.d(TAG, "we do not have the READ_LOGS permission!");    if (android.os.Build.VERSION.SDK_INT >= 16) {        Log.d(TAG, "Working around JellyBeans 'feature'...");        try { // format the commandline parameter CMDLINE_GRANTPERMS[2] = String.format("pm grant %s android.permission.READ_LOGS", pname); java.lang.Process p = Runtime.getRuntime().exec(CMDLINE_GRANTPERMS); int res = p.waitFor(); Log.d(TAG, "exec returned: " + res); if (res != 0)     throw new Exception("failed to become root");        } catch (Exception e) { Log.d(TAG, "exec(): " + e); Toast.makeText(context, "Failed to obtain READ_LOGS permission", Toast.LENGTH_LONG).show();        }    }} else    Log.d(TAG, "we have the READ_LOGS permission already!");

该代码应从您的onCreate()中调用。授予权限后,就不再需要root用户权限。

PS:Superuser应用程序上的p.waitFor()会阻塞,从而延迟了应用程序的启动并可能导致ANR。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419861.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号