| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
9年前发布

Android快捷图标的创建与移除

    /**            * 添加桌面快捷方式            *             * @param view            */            public void click1(View view) {                if (isExit()) {                    Toast.makeText(getApplicationContext(), "快捷方式已经存在", 0).show();                    return;                }                // 取得图标资源                Parcelable icon = Intent.ShortcutIconResource.fromContext(                        getApplicationContext(), R.drawable.logo);                Intent intent = new Intent();                // 设置意图的动作                intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");                // 设置图标的名称                intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "LOL");                // 设置图标                intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);                // 设置意图的动作和类别                Intent intent2 = new Intent();                intent2.setAction(Intent.ACTION_MAIN);                intent2.addCategory(Intent.CATEGORY_LAUNCHER);                intent2.setComponent(new ComponentName(this, MainActivity.class));                intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent2);                sendBroadcast(intent);            }  

    /**            * 删除桌面快捷方式            *             * @param view            */            public void click2(View view) {                Parcelable icon = Intent.ShortcutIconResource.fromContext(                        getApplicationContext(), R.drawable.logo);                Intent intent = new Intent();                // 设置意图的动作                intent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");                // 设置图标的名称                intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "LOL");                // 设置图标                intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);                // 设置意图的动作和类别                Intent intent2 = new Intent();                intent2.setAction(Intent.ACTION_MAIN);                intent2.addCategory(Intent.CATEGORY_LAUNCHER);                intent2.setComponent(new ComponentName(this, MainActivity.class));                intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent2);                sendBroadcast(intent);            }  

    /**            * 判断桌面是否已经存在快捷方式            *             * @return            */            private boolean isExit() {                Uri uri = null;                // 不同版本中的Uri不同                if (getSdkVersion() < 8) {                    uri = Uri                            .parse("content://com.android.launcher.settings/favorites");                } else {                    uri = Uri                            .parse("content://com.android.launcher2.settings/favorites");                }                String selection = "title=?";                String[] selectionArgs = new String[] { "LOL" };                Cursor cursor = getContentResolver().query(uri, null, selection,                        selectionArgs, null);                if (cursor.moveToNext()) {                    cursor.close();                    return true;                } else {                    cursor.close();                    return false;                }            }  

    /**            * 获得手机SDK的版本            *             * @return            */            private int getSdkVersion() {                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.READ_SETTINGS" />
    <!-- 删除快捷方式权限 -->
    <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>