android 桌面创建快捷方式

 /** 创建快捷方式 * */  
    public void createDeskShortCut() {  
           //创建快捷方式的Intent  
           Intent shortcutIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); 
           //不允许重复创建  ,如果重复的话就会有多个快捷方式了
           shortcutIntent.putExtra("duplicate",false);  
           //这个就是应用程序图标下面的名称 
           shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,getString(R.string.app_name));  
           //快捷图片  
           Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(),R.drawable.login_icon);  
           shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,icon);  
           Intent intent = new Intent(getApplicationContext(),ClassifyActivity.class);  //这个MainActivity是调用此方法的Activity
           //下面两个属性是为了当应用程序卸载时桌面 上的快捷方式会删除  
           intent.setAction("android.intent.action.MAIN");  
           intent.addCategory("android.intent.category.LAUNCHER");    
           intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK  
                   | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);  
           intent.setClass(this, WelcomeActivity.class);  
           shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,intent);  
           //最后一步就是发送广播 
           sendBroadcast(shortcutIntent);  
    }

下面是如何调用:

判断SharedPreferences 是否存在,不存在就证明程序第一次安装启动,创建串接方式

SharedPreferences preferences = getSharedPreferences("isfrist_file",ClassifyActivity.MODE_PRIVATE);  
		boolean isFirst = preferences.getBoolean("isfrist", true);  
		//就是第一次运行程序时就创建桌面快捷方式,以后就不创建了
		  if(isFirst) {  
//			  DefaultDialog dd = new DefaultDialog(this, true) {
//
//					@Override
//					protected void doPositive() {
//						createDeskShortCut(); 
//					}
//				};
//				dd.setMessage(R.string.shortcut);
//				dd.show(); 
			  createDeskShortCut();
		  }  
		  SharedPreferences.Editor editor = preferences.edit();  
		  editor.putBoolean("isfrist",false);  
		  editor.commit(); 

猜你喜欢

转载自zdpeng.iteye.com/blog/1709577