如何以编程方式关闭android中的屏幕

时间:2017-12-06 20:48:54

标签: android

我想关闭屏幕。所以我尝试使用PowerManager类,但它没有关闭屏幕。

PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
wl.acquire();

3 个答案:

答案 0 :(得分:1)

您可以通过覆盖系统屏幕关闭时间来关闭屏幕。

首先让系统关闭时间

int defaultTurnOffTime =  Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, 60000);

然后关闭时间

Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, 1000);

当屏幕关闭时,设置默认关闭时间

Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, defaultTurnOffTime);

添加以下权限

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

答案 1 :(得分:0)

问题不清楚你是否尝试过这个问题,但你可能需要确保你的清单中有:

  

任何使用WakeLock的应用程序都必须在应用程序清单的元素中请求android.permission.WAKE_LOCK权限。

您可能会看到另一个区域是logcat,以查看是否有任何堆栈跟踪或错误被记录,这可以为人们提供更多帮助。

答案 2 :(得分:0)

@SuperDev,将以下内容添加到清单中:

<uses-permission android:name="android.permission.WRITE_SETTINGS"
    tools:ignore="ProtectedPermissions"/>

这将解决您的应用程序崩溃。