如何检测通知栏是否在Android中被激活?

时间:2015-09-17 06:01:57

标签: android notifications

我因为声誉不佳而无法上传图片文件,请理解。

你们知道,你可以看到"快速设置按钮"当你在android中向上滑动显示时,在通知栏上。

我想知道的是,如何检测通知栏是否已激活。 (如果可能,我也想知道在快速设置面板上点击哪一个,如设置,飞行模式,亮度,音量等)。

任何人都可以帮助我吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我自己想出了一个解决方案,它并不是我所寻找的代码,但它完美地完成了我的工作。

在您的活动中:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // make ContentObserver so that you can detect changes of settings.
    SettingsContentObserver mSettingsContentObserver = new SettingsContentObserver(new Handler());

    // and registerContentObserver with right URI (in case of mine, I'm trying to catch the change of bluetooth status weather it is on or off.)
    this.getApplicationContext().getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.System.BLUETOOTH_ON),true, mSettingsContentObserver);
}

public class SettingsContentObserver extends ContentObserver {
    public SettingsContentObserver(Handler handler) {
        super(handler);
    }
    @Override
    public boolean deliverSelfNotifications() {
        return super.deliverSelfNotifications();
    }
    @Override
    public void onChange(boolean selfChange) {
        super.onChange(selfChange);
        //Write anything you want to do after the observer detect the changes.
        Toast.makeText(getApplicationContext(),"Bluetooth On",Toast.LENGTH_SHORT).show();
    }
}