android软件创建快捷方式

来源:互联网 发布:linux 复制覆盖文件 编辑:程序博客网 时间:2024/05/19 13:55

创建桌面快捷方式的代码网上很多,但是大多都是转载,或者不全的,如果按照那思路去做,一般会被坑死,我就被坑了,但是我很高兴,因为最后解决了,把解决的方案分享给大家,不要再被坑。因为我只需要创建部分的代码,所以只贴了这些出来,卸载部分的代码就省了。

 

/**
  * 创建快捷方式
  *
  * **/
 private void createShorcut() {
  
  if (!hasShortCut(this)) {//判断快捷方式是否已经创建,如果没有这个判断,每次进入软件Toast会给你一个提示,很烦人
   String ACTION_ADD_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT";
   Intent addShortcut = new Intent(ACTION_ADD_SHORTCUT);
   Parcelable icon = Intent.ShortcutIconResource.fromContext(this,// 快捷方式图片
     R.drawable.ic_launcher);
   addShortcut.putExtra("duplicate", false); // 不允许重复创建
   addShortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
   addShortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "居丫");// 快捷方式名称
   addShortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(
     getApplicationContext(), WelcomeActivity.class));// 运行的程序主入口
   sendBroadcast(addShortcut);
  }

 }
 /*
  * 判断快捷方式是否已经创建

  *
  *
  * */
 public static boolean hasShortCut(Context context) {
        String url = "";
        System.out.println(getSystemVersion());
        if(getSystemVersion() < 8){ //判断如果系统版本小于2.2的,这个地方是网上抄别人的,小于2.2的路径和大于2.2的路径不同
            url = "content://com.android.launcher.settings/favorites?notify=true";
        }else{ //判断如果系统版本小大于2.2的
            url = "content://com.android.launcher2.settings/favorites?notify=true";
        }
       
        ContentResolver resolver = context.getContentResolver();
        Cursor cursor = resolver.query(Uri.parse(url), null, "title=?",
                        new String[] {context.getString(R.string.app_name)}, null);
 
        if (cursor != null && cursor.moveToFirst()) {
                cursor.close();
                return true;
        }
 
        return false;
    }
private static int getSystemVersion(){ //获取系统版本
        return android.os.Build.VERSION.SDK_INT;
    }

 

 

最后加上权限

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

原创粉丝点击