是否可以通过从Android应用执行的adb命令来禁用打ze模式?

问题描述

我需要从我的android应用程序完全禁用手机上的打ze模式。 我发现以下命令可以在Andriod中禁用打ze模式。

adb -d shell dumpsys deviceidle disable

我做了一个小样,可以从我的Android应用程序中运行上述命令。我遇到异常-权限被拒绝。

package com.example.myapplication

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
import java.io.BufferedReader
import java.io.InputStreamReader

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        btn_test_shell.setonClickListener()
        {
            val adbShellCommand =   "dumpsys deviceidle disable" //"pwd" //

            val pb = ProcessBuilder(adbShellCommand)
            val p: Process

            try {
                p = pb.start()
                val reader = BufferedReader(InputStreamReader(p.inputStream))
                //Set the output to a TextView
                txt_shell_output.text = reader.read().toString()

                p.waitFor()
                p.destroy()
            } catch (e: Exception) {
                e.printstacktrace()
                Log.e("Execute Shell",e.printstacktrace().toString())
            }
        }
    }

}

当我使用Runtime.getRuntime()。exec(adbShellCommand)运行相同的代码时,在TextView中得到80的输出,不确定是什么意思。在这种情况下,当然也不例外。

几个问题:

  1. 是否允许在Android应用程序中运行上述命令?

  2. 通过以下命令将您的应用列入白名单,是否具有与在Android中设置“忽略电池优化”相同的效果adb -d shell dumpsys deviceidle whitelist + <pkg-name>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)