Android 建立捷徑失效的bug【已解決】

來源:互聯網
上載者:User

    要特別注意以下這句話導致的無法建立捷徑的問題


    很多地方都說這句話的意義是在於防止重複建立捷徑,但是我今天遇到的問題就是由於這句話導致無法在案頭上建立捷徑。

    最後我的做法是:

    1.用SharedPreferences來判斷是否是第一次進入應用

    2.用isInstallShortcut()來判斷是否存有捷徑

    3.建立捷徑(

private void createShortCut() {        SharedPreferences userini = getSharedPreferences(                getString(R.string.useriniXML), Activity.MODE_PRIVATE);        Log.e("H3c","sh.."+userini.getInt("seflshotcut", 0));        if (userini.getInt("seflshotcut", 0) == 0) {            m_tool.createShortCut(Main.this);            SharedPreferences.Editor sEdi = userini.edit();            sEdi.putInt("seflshotcut", 1);            sEdi.commit();        }    }

private boolean isInstallShortcut() {        boolean isInstallShortcut = false;        final ContentResolver cr = MarketApplication                .getMarketApplicationContext().getContentResolver();        String AUTHORITY = "com.android.launcher.settings";        Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY                + "/favorites?notify=true");        Cursor c = cr.query(CONTENT_URI,                new String[] { "title", "iconResource" }, "title=?",                new String[] { "XXXX" }, null);        if (c != null && c.getCount() > 0) {            isInstallShortcut = true;        }        if (c != null) {            c.close();        }        if (isInstallShortcut) {            return isInstallShortcut;        }        AUTHORITY = "com.android.launcher2.settings";        CONTENT_URI = Uri.parse("content://" + AUTHORITY                + "/favorites?notify=true");        c = cr.query(CONTENT_URI, new String[] { "title", "iconResource" },                "title=?", new String[] { "XXXX" }, null);        if (c != null && c.getCount() > 0) {            isInstallShortcut = true;        }        return isInstallShortcut;    }

3.

    /**     * 建立捷徑     * */    public void createShortCut(Context contxt) {        if (isInstallShortcut()) {// 如果已經建立了一次就不會再建立了            return;        }                Intent sIntent = new Intent(Intent.ACTION_MAIN);        sIntent.addCategory(Intent.CATEGORY_LAUNCHER);// 加入action,和category之後,程式卸載的時候才會主動將該捷徑也卸載        sIntent.setClass(contxt, Login.class);                Intent installer = new Intent();//        installer.putExtra("duplicate", false);        installer.putExtra("android.intent.extra.shortcut.INTENT", sIntent);        installer.putExtra("android.intent.extra.shortcut.NAME", "XXXX");        installer.putExtra("android.intent.extra.shortcut.ICON_RESOURCE", Intent.ShortcutIconResource.fromContext(contxt, R.drawable.icon));        installer.setAction("com.android.launcher.action.INSTALL_SHORTCUT");        contxt.sendBroadcast(installer);    }

    測試:點擊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.