繁体   English   中英

Android通过服务调整系统亮度

[英]Android Adjusting System Brightness from a Service

我是Android开发的新手。 通过执行以下操作,我已经能够调整自己的应用程序的屏幕亮度:

WindowManager.LayoutParams layout = getWindow().getAttributes();
layout.screenBrightness = 0;
getWindow().setAttributes(layout);

我真正需要做的是在系统级别上更改屏幕亮度。 我想通过服务或意图服务来做到这一点。 我遇到的问题是

getWindow()

从服务调用时失败。 我认为这可能通过使用ViewOverlays或其他方法来实现,但是到目前为止我尝试过的所有方法都失败了。 有人有主意吗?

我需要一个解决方案,其中我的应用程序在后台启动服务,然后当您在其他应用程序或主屏幕中使用设备时,该服务会调整屏幕亮度。

您可以尝试以下方法:

android.provider.Settings.System.putInt(getContentResolver(),
                android.provider.Settings.System.SCREEN_BRIGHTNESS,
                value);

将此添加到清单

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

并检查像这样的运行时权限

   ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_SETTINGS}, 1);
        public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
            switch (requestCode) {
                case 1: {
                    if (grantResults.length > 0
                            && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                        //permission accepted

                    } else {
                        // permission denied,
                    }
                    return;
                }

            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM