我正在开发一个具有某些功能的应用程序只能在有根设备中工作。
几乎完成并且应用程序也可以在有根设备中运行。但有些设备正在使用 SuperSU,在这种情况下应用程序无法正常工作。
我还与自定义 ROM 开发人员进行了研究和讨论,他们说您的应用程序没有要求 SuperSU 权限,但它应该。
我对同一主题进行了许多研究,但没有找到任何适当的方法来实现这一目标。
我正在开发一个具有某些功能的应用程序只能在有根设备中工作。
几乎完成并且应用程序也可以在有根设备中运行。但有些设备正在使用 SuperSU,在这种情况下应用程序无法正常工作。
我还与自定义 ROM 开发人员进行了研究和讨论,他们说您的应用程序没有要求 SuperSU 权限,但它应该。
我对同一主题进行了许多研究,但没有找到任何适当的方法来实现这一目标。
我找到了解决方案。
SuperSU
应用程序中有 3 个选项Settings Tab > Default Access
。
所以有两种情况。
1 . 如果SuperSU
app 中默认设置了“ GrantSettings Tab > Default Access
” ,则 app 不会SuperSU
在应用中请求权限。
2 . 如果应用程序在 中默认设置了SuperSU
“提示Settings Tab > Default Access
” ,则应用程序将在需要时请求SuperSU
许可。
为了请求SuperSU
启动应用程序的权限,我使用 RootTools 检查 SuperSU Access。
因此,我只是使用 RootTools 通过一个简单的条件检查了 root 访问权限。
if (RootTools.isAccessGiven())
Toast.makeText(this, "SU Permission Granted", Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "SU Permission Denied", Toast.LENGTH_SHORT).show();
因此,无论何时RootTools.isAccessGiven()
执行,它都会自动打开一个弹出窗口,要求应用程序获得 SuperSU 权限。稍后您也可以从 SuperSU 应用程序中更改它。
这就是我发现并实施的。现在一切正常。
谢谢