繁体   English   中英

从服务android更改亮度

[英]changing brightness from Service android

我想从服务更改android设备的亮度。 我已经看到了很多关于堆栈溢出的问题,但是没有一个问题解决了我的问题。

从设置settingsManger的亮度,开始新活动等,我已经完成了所有工作,但是没有一个对我有用。

尝试为

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

并在Manifest.xml中添加权限

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

编辑:尝试为:

public class ExampleService extends Service {

    @Override
    public void onCreate() {
        // The service is being created
        // set SCREEN_BRIGHTNESS
        android.provider.Settings.System.putInt(getContentResolver(),
        android.provider.Settings.System.SCREEN_BRIGHTNESS,
        BRIGHTNESS_Value);
        /// start new Activity
        Intent intent = new Intent(getBaseContext(), ExampleActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        getApplication().startActivity(intent);
    }

    @Override
    public IBinder onBind(Intent intent) {
        // A client is binding to the service with bindService()
        return mBinder;
    }
}

public class ExampleActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // The activity is being created.

    }

    @Override
    protected void onResume() {
        super.onResume();
        // The activity has become visible (it is now "resumed").
        this.finish();
    }
  }

找到的答案:创建一个不可见的活动,不要完成它。 进行活动中的所有更改

虚拟活动的代码:

public class DummyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dummy_layout);
    int progress = getIntent().getIntExtra("brightness", 0);
    WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
    layoutParams.screenBrightness = progress/255.0f;
    getWindow().setAttributes(layoutParams);


    Toast.makeText(this, "Came in Dummy Activity", Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
}

}

即使您在烤面包后打完电话,它也可以工作。 我尝试过这个。

实际上,即使您不调用虚拟活动,它也可以工作。 即使您正确设置了亮度值,也不会看到(可见)显示亮度变化。

如果您在应用程序在后台运行时转到设置>显示>亮度,则可以看到显示亮度的变化。

虽然不知道为什么。

我想和你一样...

我也没有找到,最后我不得不实现...

根据Android中的周围光线更改亮度

暂无
暂无

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

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