android 快捷方式
来源:互联网 发布:win8 java环境变量设置 编辑:程序博客网 时间:2024/04/29 13:04
判断是否存在public boolean isExistShortcut() {boolean isInstallShortcut = false;final ContentResolver cr = this.getContentResolver();final String AUTHORITY ;if(sdk < 2.2){AUTHORITY = "com.android.launcher.settings";}else{AUTHORITY = "com.android.launcher2.settings";}final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/favorites?notify=true");Cursor c = cr.query(CONTENT_URI, new String[] { "title", "iconResource" }, "title=?", new String[] { "新浪微博" }, null);// XXX表示应用名称。if (c != null && c.getCount() > 0) {isInstallShortcut = true;}return isInstallShortcut;}//创建public void createShortcut(Context context) {Intent pendingIntent = new Intent();pendingIntent.setClassName(context.getPackageName(), “点击快捷方式要打开的activity”);//程序卸载后 ,该shortcut也会自动被删除pendingIntent.setAction(Intent.ACTION_MAIN);pendingIntent.addCategory(Intent.CATEGORY_LAUNCHER);Intent intent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");intent.putExtra("android.intent.extra.shortcut.NAME", "快速省电");intent.putExtra("android.intent.extra.shortcut.ICON_RESOURCE",Intent.ShortcutIconResource.fromContext(context, R.drawable.shortcut));intent.putExtra("android.intent.extra.shortcut.INTENT", pendingIntent);intent.putExtra("duplicate", true);context.sendBroadcast(intent);}//删除public void deleteShortcut(){final ContentResolver cr = this.getContentResolver();final String AUTHORITY = "com.android.launcher2.settings";final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/favorites?notify=true");cr.delete(CONTENT_URI, "title=?", new String[] { "快速省电" });}private void delShortcut(){ Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT"); //快捷方式的名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); //指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer //注意: ComponentName的第二个参数必须是完整的类名(包名+类名),否则无法删除快捷方式 String appClass = this.getPackageName() + "." +this.getLocalClassName(); ComponentName comp = new ComponentName(this.getPackageName(), appClass); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp)); sendBroadcast(shortcut); } 权限:<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/> <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS"/>