我想在android中删除所有屏幕中的所有快捷方式。我成功了一次,但不知怎的,它在下次执行后停止了工作。我可以请你帮我找出会出现什么问题吗?没有堆栈,没有错误,只是我点击没有任何反应。当我第一次成功时,我得到了许多描述" X被删除"。
这是我的代码:
private void method0() {
final Intent anyIntent = new Intent(Intent.ACTION_MAIN, null);
List<ResolveInfo> pkgAppsList = this.getPackageManager().queryIntentActivities(anyIntent, 0);
for (final ResolveInfo resolveInfo : pkgAppsList) {
method(resolveInfo);
}
}
private void method(ResolveInfo resolveInfo) {
try {
final PackageManager pm = getPackageManager();
String packageName = ((ActivityInfo) resolveInfo.activityInfo).packageName;
String appName = (String) resolveInfo.loadLabel(pm);
ComponentName componentName = new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName, resolveInfo.activityInfo.name);
if (packageName.startsWith("com.google") || (packageName.startsWith("com.android")))
return;
final Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
shortcutIntent.setComponent(new ComponentName(packageName, componentName.getClassName()));
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, appName);
intent.setComponent(new ComponentName(packageName, componentName.getClassName()));
intent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
sendBroadcast(intent, null);
} catch (Exception e) {
e.printStackTrace();
}
}
我还添加了许可
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
我正在使用Nexus 4的标准启动器 - 来自谷歌网站的原始图像ROM。