如何禁用Android设备中的所有小部件?

时间:2016-08-08 11:46:32

标签: java android widget

我试图通过我的应用程序禁用我的设备中的所有小部件。我使用以下内容获取所有小部件的列表,但它没有获得所有小部件的所有信息,假设我有26个小部件在我的手机中,但只有15个项目被禁用。

private static void disableAllWidgets(Context context)
    {
        AppWidgetManager manager = AppWidgetManager.getInstance(context);
        List<AppWidgetProviderInfo> infoList = manager.getInstalledProviders();
        for (AppWidgetProviderInfo info : infoList)
        {
            String providerInfo = "" + info.provider;
            int startIndex = providerInfo.indexOf('{');
            int endIndex = providerInfo.indexOf('}');
            String[] parts = (providerInfo.substring(startIndex + 1, endIndex)).split("/");
            String packageName = parts[0];
            String widgetProviderName = parts[1];
            try
            {
                mPackageManager = (PackageManager) context.getPackageManager();
                try
                {
                    mPackageManager.setComponentEnabledSetting(new ComponentName(packageName, widgetProviderName), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
                mPackageManager.setComponentEnabledSetting(new ComponentName(packageName, widgetProviderName), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);

            }
            catch (Exception ex)
            {
                ex.printStackTrace();
            }
        }
    }

现在我的问题是如何禁用列表中不存在的其他小部件,因为我想禁用所有小部件。

0 个答案:

没有答案