相关疑难解决方法(0)

以编程方式关闭Android手机

我们可以通过编程方式关闭Android手机吗?

第二个问题:如何在Android中锁定和解锁屏幕?

我正在使用以下代码片段,但它对我不起作用.

KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 

lock.disableKeyguard(); // to disable

lock.reenableKeygaurd();// to enable
Run Code Online (Sandbox Code Playgroud)

我也使用了许可.

android shutdown

36
推荐指数
5
解决办法
5万
查看次数

以编程方式关闭设备

我正在编写一个旨在在一个特定设备模型(运行基于Amlogic的固件的Android机顶设备)上运行的应用程序.我有两个root功能,我的应用程序使用固件证书签名.

我的应用程序是该设备的主要关注点,能够启动完全关闭电源会很有帮助.

我没有这个shutdown命令.我确实有这个reboot命令.

reboot -p没有帮助.它只是在保持通电状态时冻结设备.

这PowerManager是更好的一步,但它将设备设置为睡眠模式,而不是完全关闭:

PowerManager pm = (PowerManager)getSystemService(Service.POWER_SERVICE);
pm.goToSleep(SystemClock.uptimeMillis());
Run Code Online (Sandbox Code Playgroud)

我对所有建议持开放态度 - 黑客或其他.Android的版本预计将继续保留4.2.2.


意图

此命令将导致设备重新启动.Intent.ACTION_SHUTDOWN似乎没有做任何事情.这个Intent可能只是报告关闭,而不是发起关闭吗?

Intent i = new Intent(Intent.ACTION_REBOOT);
i.putExtra("nowait", 1);
i.putExtra("interval", 1);
i.putExtra("window", 0);
sendBroadcast(i);
Run Code Online (Sandbox Code Playgroud)

我最幸运的是要求Intent关闭:

Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
i.putExtra("android.intent.extra.KEY_CONFIRM", true);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

关机线程

那更接近了.绝对有趣.你能找到一个使用它的例子吗?

到目前为止,我已经想出了这个:

Class<?> sdClass = Class.forName("com.android.server.power.ShutdownThread");
Constructor<?> con = sdClass.getDeclaredConstructors()[0];
con.setAccessible(true);

for (Method m : sdClass.getDeclaredMethods()) {
    if (m.getName().matches("shutdown")) {
        m.setAccessible(true);
        m.invoke(sdClass, PlayerActivity.this, false);
    } else if (m.getName().matches("rebootOrShutdown")) {
        m.setAccessible(true);
        m.invoke(sdClass, …
Run Code Online (Sandbox Code Playgroud)

android

24
推荐指数
4
解决办法
3万
查看次数

标签 统计

android ×2

shutdown ×1