Как открыть диалог из плитки быстрых настроек?

Я разрабатываю приложение для плитки быстрых настроек. Я хочу открывать макет или настраиваемое диалоговое окно, когда пользователь щелкает плитку, в зависимости от того, какой вариант подходит. Считайте это настраиваемым диалоговым окном. Я перепробовал много примеров, но безуспешно!

Заранее спасибо.

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/

Здесь, в этой ссылке, они используют диалоговое окно предупреждений по умолчанию. Попробуйте создать собственный диалог по мере необходимости. Надеюсь, это сработает для вас.

Другие вопросы по тегам