当前位置: 代码迷 >> Android >> 2011.09.09(二)——— android 桌面添加快捷方式
  详细解决方案

2011.09.09(二)——— android 桌面添加快捷方式

热度:83   发布时间:2016-05-01 18:55:47.0
2011.09.09(2)——— android 桌面添加快捷方式
2011.09.09(2)——— android 桌面添加快捷方式

参考:http://www.apkbus.com/android-5728-1-1.html

添加快捷方式:
private void installShortCut(){		Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");		shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));		// 是否可以有多个快捷方式的副本,参数如果是true就可以生成多个快捷方式,如果是false就不会重复添加		shortcutIntent.putExtra("duplicate", false);		Intent mainIntent = new Intent(Intent.ACTION_MAIN);		mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);		// 要删除的应用程序的ComponentName,即应用程序包名+activity的名字		//intent2.setComponent(new ComponentName(this.getPackageName(), this.getPackageName() + ".MainActivity"));		mainIntent.setClass(this, this.getClass());		shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mainIntent);		shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));		sendBroadcast(shortcutIntent);	}			sendBroadcast(shortcutIntent);


权限:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
 

总不能每次进入应用 都添加一次快捷方式 所以 需要判断一下快捷方式是否已经存在

private boolean hasShortCut() {        ContentResolver resolver = getContentResolver();        Cursor cursor = resolver.query(Uri.parse("content://com.android.launcher.settings/favorites?notify=true"), null, "title=?",                        new String[] {getString(R.string.app_name)}, null);        if (cursor != null && cursor.moveToFirst()) {                cursor.close();                return true;        }        return false;	}


查询权限:
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/> 


删除快捷方式:

private void uninstallShortcut(){		System.out.println("11");		Intent intent = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");		intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));		intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,		                new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setClass(this, this.getClass()));		sendBroadcast(intent);	}


权限:

<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>  








1 楼 1846396994 2012-04-21  
总结的关于添加和删除及判断是否存在快捷方式,Android应用添加(创建)和删除及判断是否存在桌面快捷方式
  相关解决方案