Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android設置壁紙和創建桌面圖標

Android設置壁紙和創建桌面圖標

編輯:關於Android編程

寫了個小Demo,實現了設置壁紙和創建桌面圖標的邏輯:

創建壁紙比較簡單,將Drawable轉為Bitmap,然後直接用setWallpaper就行了:

 

Bitmap bitmap = BitmapFactory.decodeResource(Main.this.getResources(), R.drawable.wallpaper);
                try {
                    Main.this.setWallpaper(bitmap);
                } catch (IOException e) {
                    e.printStackTrace();
                }

創建桌面圖標:

 

 

if (!hasShortcut()) {
                    addShortcut();
                } else {
                    Toast.makeText(Main.this, 桌面圖標已存在, Toast.LENGTH_SHORT).show();
                }

 

 

創建和刪除桌面圖標:
/**
     * 為程序創建桌面圖標
     */
    private void addShortcut() {
        Intent shortcut = new Intent(com.android.launcher.action.INSTALL_SHORTCUT);
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));//快捷方式的名稱
        shortcut.putExtra(duplicate, false); //不允許重復創建

        Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
        shortcutIntent.setClassName(this, this.getClass().getName());
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);

        //圖標
        Intent.ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher);
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
        sendBroadcast(shortcut);
    }

    /**
     * 刪除應用的桌面圖標
     */
    private void delShortcut() {
        Intent shortcut = new Intent(com.android.launcher.action.UNINSTALL_SHORTCUT);

        //圖標名稱
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
        String appClass = this.getPackageName() + . + this.getLocalClassName();
        ComponentName comp = new ComponentName(this.getPackageName(), appClass);
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));

        sendBroadcast(shortcut);

    }

 

判斷桌面圖標是否已經存在:

 

private boolean hasShortcut() {
        boolean isInstallShortcut = false;
        final ContentResolver cr = Main.this.getContentResolver();
        final String AUTHORITY = com.android.launcher.settings;
        final Uri CONTENT_URI = Uri.parse(content:// + AUTHORITY + /favorites?notify=true);
        Cursor c = cr.query(CONTENT_URI, new String[]{title, iconResource}, title=?,
                new String[]{Main.this.getString(R.string.app_name).trim()}, null);
        if (c != null && c.getCount() > 0) {
            isInstallShortcut = true;
        }
        return isInstallShortcut;
    }

 


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved