我试图通过我的应用程序禁用我的设备中的所有小部件。我使用以下内容获取所有小部件的列表,但它没有获得所有小部件的所有信息,假设我有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();
}
}
}
现在我的问题是如何禁用列表中不存在的其他小部件,因为我想禁用所有小部件。