/**
* 创建快捷方式
*/
private void shortCut() {
// TODO Auto-generated method stub
Intent shortcut = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
// 设置属性
Parcelable icon = Intent.ShortcutIconResource.fromContext(this,
R.drawable.logo); // 获取快捷键的图标
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getResources().getString(R.string.app_name)); // 设置名称
// 是否允许重复创建
shortcut.putExtra("duplicate", false);
//设置快捷方式点击后启动的Activity
Intent intent = new Intent(WutongDemo.this, WutongDemo.class);
intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
// 确保卸载快捷方式
intent.setAction("android.intent.action.MAIN");
intent.addCategory(Intent.CATEGORY_LAUNCHER);
// 设置启动程序
System.out.println("createIcon");
// 点击快捷图片,运行的程序主入口
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
WutongDemo.this.sendBroadcast(shortcut);
}
/**
* 检查快捷方式是否已创建
* @return
*/
public boolean checkShortcut() {
boolean isInstallShortcut = false;
final ContentResolver cr = this.getContentResolver();
String AUTHORITY = "com.android.launcher.settings";//android2.2以前路劲
Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY
+ "/favorites?notify=true");
Cursor c = cr.query(CONTENT_URI,
new String[] { "title", "iconResource" }, "title=?",
new String[] { getString(R.string.app_name ) }, null);// Arecorder表示应用名称,在这里检查应用程序名称
//如果以上路径找不到,则用以下路径进行获取
if(c == null){
AUTHORITY = "com.android.launcher2.settings";//android2.2以后的路劲
CONTENT_URI = Uri.parse("content://" + AUTHORITY
+ "/favorites?notify=true");
c = cr.query(CONTENT_URI,
new String[] { "title", "iconResource" }, "title=?",
new String[] { getString(R.string.app_name ) }, null);
}
if (c != null && c.getCount() > 0) {
isInstallShortcut = true;
}
return isInstallShortcut;
}
在需要的地方直接调就行了
if(!checkShortcut()){
shortCut();
}