Android 生成桌面快捷方式是這樣做的

關(guān)于生成桌面快捷方式,Android提供了原生的api方法挤茄。下邊就介紹一下兼容8.0的具體做法尺碰。

一、首先當(dāng)然是關(guān)于快捷方式的權(quán)限了歇攻。

我們需要在AndroidManifest文件中添加以下權(quán)限:

<uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
    <!-- 添加快捷方式 -->
    <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.READ_SETTINGS" />

二固惯、在需要生成桌面快捷方式處調(diào)用以下代碼

 /**
     * 添加快捷方式
     */
    public void addShortCutCompact(Bitmap bitmap) {
        //啟動(dòng)器是否支持添加快捷方式
        if (ShortcutManagerCompat.isRequestPinShortcutSupported(mContext)) {
            Intent shortcutInfoIntent = new Intent(mContext, TestActivity.class);
             //這里直接傳一個(gè)對象報(bào)錯(cuò),現(xiàn)在轉(zhuǎn)成json傳過去
            Gson gson = new Gson();
            String json = gson.toJson(ShortcutBean);
            shortcutInfoIntent.putExtra(SHORTCUT_BEAN,json );
            shortcutInfoIntent.putExtra(IS_SHORTCUT, true);
            //action必須設(shè)置缴守,不然報(bào)錯(cuò)
            shortcutInfoIntent.setAction(Intent.ACTION_VIEW);
            shortcutInfoIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            shortcutInfoIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            ShortcutInfoCompat info = new ShortcutInfoCompat.Builder(mContext, "mama_id")
                    //設(shè)置圖標(biāo)icon
                    .setIcon(Icon.createWithResource(context, R.drawable.icon))
                    //設(shè)置名稱
                    .setShortLabel("快捷方式名稱")
                    .setIntent(shortcutInfoIntent)
                    .build();
                    
            //創(chuàng)建快捷方式
            ShortcutManagerCompat.requestPinShortcut(mContext, info,null);

        } else {
            ToastUtil.showMsg("啟動(dòng)器不支持固定快捷方式");
        }
    }

三葬毫、注意點(diǎn)

1镇辉、點(diǎn)擊桌面快捷方式跳轉(zhuǎn)到目標(biāo)頁面就是上邊代碼例子中的TestActivity時(shí),如果有業(yè)務(wù)需要做一些統(tǒng)計(jì)之類的操作贴捡,我們可以傳遞一些數(shù)據(jù)進(jìn)行操作忽肛,這里可以直接傳遞基本數(shù)據(jù)類型,但是如果想直接傳遞一個(gè)bean對象時(shí)烂斋,是不支持的屹逛,需要我們轉(zhuǎn)成json傳遞。
2汛骂、shortcutInfoIntent.setAction(Intent.ACTION_VIEW);是必須設(shè)置的罕模。
3、桌面快捷方式的圖標(biāo)不支持網(wǎng)絡(luò)地址圖片帘瞭,如果想要從接口獲取動(dòng)態(tài)設(shè)置需要先下載下來為一個(gè)bitmap淑掌。用setIcon(IconCompat.createWithBitmap(bitmap))方法來設(shè)置。
關(guān)于下載網(wǎng)絡(luò)圖片我們有很多方法蝶念,這里是用glide下載抛腕,列子代碼:

 /**
     *  下載快捷方式icon
     */
    private void downShortcutICon() {
        final Bitmap[] bitmap = new Bitmap[1];
        //先下載圖標(biāo) 轉(zhuǎn)為bitMap
        Glide.with(mContext).asBitmap().load(addIcon.getAppIcon()).into(new SimpleTarget() {
            @Override
            public void onResourceReady(@NonNull Object resource, @Nullable Transition transition) {

                bitmap[0] = (Bitmap) resource;
                if (bitmap[0] != null) {
                    addShortCutCompact(bitmap[0]);
                }

            }

        });
    }

4、需要在AndroidManifest中的TestActivity注冊中加入 android:exported="true"標(biāo)簽媒殉,這個(gè)標(biāo)簽是用來表示是否能夠被其他應(yīng)用程序組件調(diào)用或跟它交互担敌。
5、另外廷蓉,如小米全封、vivo等一些機(jī)型需要在設(shè)置中手動(dòng)打開 創(chuàng)建桌面快捷方式權(quán)限。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苦酱,一起剝皮案震驚了整個(gè)濱河市售貌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疫萤,老刑警劉巖颂跨,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扯饶,居然都是意外死亡恒削,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門尾序,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钓丰,“玉大人,你說我怎么就攤上這事每币⌒。” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵兰怠,是天一觀的道長梦鉴。 經(jīng)常有香客問我李茫,道長,這世上最難降的妖魔是什么肥橙? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任魄宏,我火速辦了婚禮,結(jié)果婚禮上存筏,老公的妹妹穿的比我還像新娘宠互。我一直安慰自己,他們只是感情好椭坚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布予跌。 她就那樣靜靜地躺著,像睡著了一般藕溅。 火紅的嫁衣襯著肌膚如雪匕得。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天巾表,我揣著相機(jī)與錄音,去河邊找鬼略吨。 笑死集币,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的翠忠。 我是一名探鬼主播鞠苟,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秽之!你這毒婦竟也來了当娱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤考榨,失蹤者是張志新(化名)和其女友劉穎跨细,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體河质,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冀惭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掀鹅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片散休。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖乐尊,靈堂內(nèi)的尸體忽然破棺而出戚丸,到底是詐尸還是另有隱情,我是刑警寧澤扔嵌,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布限府,位于F島的核電站猴鲫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谣殊。R本人自食惡果不足惜拂共,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姻几。 院中可真熱鬧宜狐,春花似錦、人聲如沸蛇捌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽络拌。三九已至俭驮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間春贸,已是汗流浹背混萝。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萍恕,地道東北人逸嘀。 一個(gè)月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像允粤,于是被迫代替她去往敵國和親崭倘。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容