Как открыть диалог из плитки быстрых настроек?
Я разрабатываю приложение для плитки быстрых настроек. Я хочу открывать макет или настраиваемое диалоговое окно, когда пользователь щелкает плитку, в зависимости от того, какой вариант подходит. Считайте это настраиваемым диалоговым окном. Я перепробовал много примеров, но безуспешно!
Заранее спасибо.
2 ответа
Вам просто нужно использовать метод @Override службы плитки.
@Override
public void onClick() {
super.onClick();
Tile tile = getQsTile();
switch (tile.getState()) {
case Tile.STATE_INACTIVE:
// write code for start service or open activity according to your prefrrance
StaticUtils.closeNotificationTopPanel(this);
tile.setLabel(getString(R.string.service_running));
updateTileState(Tile.STATE_ACTIVE);
break;
case Tile.STATE_ACTIVE:
updateTileState(Tile.STATE_INACTIVE);
break;
default:
updateTileState(Tile.STATE_INACTIVE);
break;
}
}
когда вы нажимаете кнопку службы плитки, вы должны закрыть панель уведомлений, приведенный ниже код поможет в этом.
public static void closeNotificationTopPanel(Context context) { Intent closeIntent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); context.sendBroadcast(closeIntent); }
Метод ниже поможет вам изменить состояние плитки и имя кнопки в соответствии с состоянием.
private void updateTileState(int state) { Tile tile = getQsTile(); if (tile != null) { tile.setState(state); Icon icon = tile.getIcon(); switch (state) { case Tile.STATE_ACTIVE: icon.setTint(Color.WHITE); break; case Tile.STATE_INACTIVE: case Tile.STATE_UNAVAILABLE: default: icon.setTint(Color.GRAY); break; } tile.updateTile(); } }
Попробуйте использовать эту ссылку : http://wintechtutorials.com/blog/android-customize-quick-setting-tiles-7-0-nougat/
Здесь, в этой ссылке, они используют диалоговое окно предупреждений по умолчанию. Попробуйте создать собственный диалог по мере необходимости. Надеюсь, это сработает для вас.