牛轧糖中的动态快速设置磁贴

Dynamic Quick Settings tile in nougat

我可以使用服务静态地向我的应用程序添加快速设置磁贴,并通过

在清单中声明它
<service android:name=".QuickSettingsService"
            android:icon="@drawable/ic_qt_24dp"
            android:label="@string/qt_label"
            android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
            <intent-filter>
                <action android:name="android.service.quicksettings.action.QS_TILE" />
            </intent-filter>
 </service>

而且我能够将上面的图块添加到快速设置并与之交互。但我需要允许动态添加它们。例如,我在我的应用程序中提供设置以打开或关闭某些图块,并且该图块反映了快速图块编辑中可用图块的可用性 menu.How 我要这样做吗?

通过包管理器启用和禁用服务解决了这个问题。

if (state) {
   pm.setComponentEnabledSetting(componentName,
   PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
   PackageManager.DONT_KILL_APP);
} else
   pm.setComponentEnabledSetting(componentName,
   PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
   PackageManager.DONT_KILL_APP);

其中 state 是表示服务开关的布尔值