在Android服务中使用窗口的替代方法

在Android服务中使用窗口的替代方法,android,Android,我想用下面的代码关闭我从中得到的按钮 final Window win=getWindow(); 最终WindowManager.LayoutParams winParams=win.getAttributes(); winParams.flags |=WindowManager.LayoutParams.FLAG_保持屏幕打开; //将屏幕亮度设置为可能的最低值 winParams.screenBrightness=0.01f; if(Build.VERSION.SDK_INT

我想用下面的代码关闭我从中得到的按钮

final Window win=getWindow();
最终WindowManager.LayoutParams winParams=win.getAttributes();
winParams.flags |=WindowManager.LayoutParams.FLAG_保持屏幕打开;
//将屏幕亮度设置为可能的最低值
winParams.screenBrightness=0.01f;
if(Build.VERSION.SDK_INT<8){
//为pre froyo设置按钮亮度的黑客
试一试{
Field ButtonRightness=winParams.getClass().getField(
“纽扣的正确性”);
按钮正确性设置(winParams,0);
}捕获(例外e){
e、 printStackTrace();
}
}否则{
winParams.ButtonRightness=0;
}
win.setAttributes(winParams);
参考:访问您可以在服务中关闭按钮灯的地方,我知道服务没有窗口,但怎么可能


谢谢。

我建议您的一个简单方法是将某种关闭消息从
服务
广播到
活动
,并在
广播接收器

onReceive方法中执行所需操作。您想从服务中打开按钮背光吗?是的参考你可以看到Playbody的夜间模式应用程序我想从一个活动到另一个服务,因为上面的代码在活动中运行良好,然后简单地按相反的顺序执行:)或者如果你擅长服务,那么也许可以在活动中绑定你的服务。我不知道如何执行,任何链接请阅读:伙计,我知道广播接收器也提供服务,但不知道如何在活动中绑定服务。
final Window win = getWindow();
final WindowManager.LayoutParams winParams = win.getAttributes();
winParams.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;

//set screen brightness to the lowest possible
winParams.screenBrightness = 0.01f;

if (Build.VERSION.SDK_INT < 8) {
  // hack for pre-froyo to set buttonBrightness off
  try {
      Field buttonBrightness = winParams.getClass().getField(
            "buttonBrightness");
      buttonBrightness.set(winParams, 0);
     }   catch (Exception e) {
       e.printStackTrace();
     }
} else {
 winParams.buttonBrightness = 0;
 }
win.setAttributes(winParams);