在授予root权限之前,应用程序布局不会绘制\拒绝

内塞多

我是一名初学者android开发人员,试图在制作示例应用程序时学习一些东西。

我的MainActivity的onCreate()执行一个AsyncTask,该任务为我的RecyclerView保留数据。AsyncTask需要Root访问权限并为其“请求”。

我的问题是,直到出现根提示并单击Grant \ deny为止,MainActivity的布局才会绘制。

如何预先绘制布局?

提前致谢!!!

onCreate():

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
DataFetcher dataFetcher = new DataFetcher();
dataFetcher.execute("");

dataFetcher:

@Override
    protected void onPreExecute() {
        super.onPreExecute();
        if(!canRunRootCommands()) {
            Log.e("DataFetcher", "No Root Access");
            cancel(true);
        }
    }
/***********************************************************************/
    //Root Check method
    //Credit: http://muzikant-android.blogspot.co.il/2011/02/how-to-get-root-access-and-execute.html

    /***********************************************************************/
    private boolean canRunRootCommands() {
        boolean retval = false;
        Process suProcess;

        try {
            suProcess = Runtime.getRuntime().exec("su");

            DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
            DataInputStream osRes = new DataInputStream(suProcess.getInputStream());

            if (null != os && null != osRes) {
                // Getting the id of the current user to check if this is root
                os.writeBytes("id\n");
                os.flush();

                String currUid = osRes.readLine();
                boolean exitSu = false;
                if (null == currUid) {
                    retval = false;
                    exitSu = false;
                    Log.d("ROOT", "Can't get root access or denied by user");
                } else if (true == currUid.contains("uid=0")) {
                    retval = true;
                    exitSu = true;
                    Log.d("ROOT", "Root access granted");
                } else {
                    retval = false;
                    exitSu = true;
                    Log.d("ROOT", "Root access rejected: " + currUid);
                }

                if (exitSu) {
                    os.writeBytes("exit\n");
                    os.flush();
                }
            }
        } catch (Exception e) {
            // Can't get root !
            // Probably broken pipe exception on trying to write to output stream (os) after su failed, meaning that the device is not rooted

            retval = false;
            Log.d("ROOT", "Root access rejected [" + e.getClass().getName() + "] : " + e.getMessage());
        }

        return retval;
    }
内塞多

将“ canRunRootCommands()”调用从onPreExecute移至doInBackground,以确保其未在UI线程上运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

拒绝位置权限,以后再授予xamarin iOS 8应用程序的位置,始终返回false

来自分类Dev

“授予或拒绝此应用程序使用此密钥的权限”消息

来自分类Dev

CakePHP。应用程序/控制台/蛋糕:root用户的权限被拒绝

来自分类Dev

如何确保我的Android 6 Cordova应用程序在尝试访问文件系统之前提示用户授予权限?

来自分类Dev

如何授予ApplicationPoolIdentity写入应用程序事件日志的权限?

来自分类Dev

如何获得应用程序的所有授予的权限

来自分类Dev

如何授予执行Eclipse应用程序的权限?

来自分类Dev

授予从我的Rails应用程序访问Azure Blob的权限

来自分类Dev

仅授予用户安装应用程序的权限

来自分类Dev

仅授予用户安装应用程序的权限

来自分类Dev

授予应用程序管理员权限

来自分类Dev

如何授予执行Eclipse应用程序的权限?

来自分类Dev

如何授予Facebook帐户的应用程序访问权限

来自分类Dev

无法撤消从Azure Active Directory授予应用程序的权限

来自分类Dev

如何授予对单个Windows应用程序的Web访问权限?

来自分类Dev

如何获得应用程序的所有授予的权限

来自分类Dev

如何授予ApplicationPoolIdentity写入应用程序事件日志的权限?

来自分类Dev

如何授予 Flatpak 应用程序访问目录的权限

来自分类Dev

获得Android应用程序的“ root”权限

来自分类Dev

使应用程序需要root权限

来自分类Dev

DirectX应用程序不会绘制

来自分类Dev

Errno 13权限被拒绝:“。cache” django应用程序?

来自分类Dev

应用程序特定的权限设置不授予本地激活权限

来自分类Dev

如何使用Powershell Az模块授予Azure AD应用程序访问所需权限的权限

来自分类Dev

我的应用程序在请求权限之前崩溃

来自分类Dev

Java应用程序是否可以获取root用户权限?

来自分类Dev

OS X:始终以root权限运行应用程序

来自分类Dev

Android应用程序不会记得USB权限

来自分类Dev

以编程方式修改 ACL 以授予应用程序池对应用程序 (IIS) 的所有权限

Related 相关文章

  1. 1

    拒绝位置权限,以后再授予xamarin iOS 8应用程序的位置,始终返回false

  2. 2

    “授予或拒绝此应用程序使用此密钥的权限”消息

  3. 3

    CakePHP。应用程序/控制台/蛋糕:root用户的权限被拒绝

  4. 4

    如何确保我的Android 6 Cordova应用程序在尝试访问文件系统之前提示用户授予权限?

  5. 5

    如何授予ApplicationPoolIdentity写入应用程序事件日志的权限?

  6. 6

    如何获得应用程序的所有授予的权限

  7. 7

    如何授予执行Eclipse应用程序的权限?

  8. 8

    授予从我的Rails应用程序访问Azure Blob的权限

  9. 9

    仅授予用户安装应用程序的权限

  10. 10

    仅授予用户安装应用程序的权限

  11. 11

    授予应用程序管理员权限

  12. 12

    如何授予执行Eclipse应用程序的权限?

  13. 13

    如何授予Facebook帐户的应用程序访问权限

  14. 14

    无法撤消从Azure Active Directory授予应用程序的权限

  15. 15

    如何授予对单个Windows应用程序的Web访问权限?

  16. 16

    如何获得应用程序的所有授予的权限

  17. 17

    如何授予ApplicationPoolIdentity写入应用程序事件日志的权限?

  18. 18

    如何授予 Flatpak 应用程序访问目录的权限

  19. 19

    获得Android应用程序的“ root”权限

  20. 20

    使应用程序需要root权限

  21. 21

    DirectX应用程序不会绘制

  22. 22

    Errno 13权限被拒绝:“。cache” django应用程序?

  23. 23

    应用程序特定的权限设置不授予本地激活权限

  24. 24

    如何使用Powershell Az模块授予Azure AD应用程序访问所需权限的权限

  25. 25

    我的应用程序在请求权限之前崩溃

  26. 26

    Java应用程序是否可以获取root用户权限?

  27. 27

    OS X:始终以root权限运行应用程序

  28. 28

    Android应用程序不会记得USB权限

  29. 29

    以编程方式修改 ACL 以授予应用程序池对应用程序 (IIS) 的所有权限

热门标签

归档