给app添加桌面快捷方式

相信大家在使用很多的应用的时候都碰到过这样的一个情景,那就是当我们第一次点击使用这个应用的时候程序会主动的为我们创建一个桌面上的快捷方式,这样的好处是可以让用户更加方便的进入这个应用,省去找的麻烦。有句话曾经说,谁占据了PC桌面客户端谁就是王者。所以我们在做开发的时候肯定也会有用到这一点,那么今天我就和大家分享实现的这样的一个功能。其实不难,你只需要在你的应用程序启动的第一个Activity里添加这样的一个方法:

方法/步骤

  1. Activity里添加这样的一个方法:


    /**

    * 创建快捷方式

    */  

    public void createDeskShortCut() {  

     

       Log.i("coder", "------createShortCut--------");  

       // 创建快捷方式的Intent  

       Intent shortcutIntent = new Intent(  

               "com.Android.launcher.action.INSTALL_SHORTCUT");  

       // 不允许重复创建  

       shortcutIntent.putExtra("duplicate", false);  

       // 需要现实的名称  

       shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,  

               getString(R.string.app_name));  

     

       // 快捷图片  

       Parcelable icon = Intent.ShortcutIconResource.fromContext(  

               getApplicationContext(), R.drawable.ic_launcher);  

     

       shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);  

     

       Intent intent = new Intent(getApplicationContext(),  

               AndroidLayoutActivity.class);  

     

       // 点击快捷图片,运行的程序主入口  

       shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);  

       // 发送广播。OK  

       sendBroadcast(shortcutIntent);  

    }  


  2. 如果只是添加这些代码,当你卸装你的应用程序的时候你又会发现存在一个问题就是你的应用程序虽然卸载了,可是桌面上的快捷方式并未卸载。呵呵,其实你只要在你要设置对应启动进入的那个Intent加上这么下面的两个属性就是表明与你的应用绑定了。



    // 下面两个属性是为了当应用程序卸载时桌面上的快捷方式会删除  

         intent.setAction("android.intent.action.MAIN");  

         intent.addCategory("android.intent.category.LAUNCHER");  


  3. 给上完整的代码:


    package com.jiahui.layout;  

     

    import android.app.Activity;  

    import android.content.Context;  

    import android.content.Intent;  

    import android.content.SharedPreferences;  

    import android.os.Bundle;  

    import android.os.Parcelable;  

    import android.util.Log;  

     

    public class AndroidLayoutActivity extendsActivity {  

          /**Called when the activity is first created. */  

          @Override  

          publicvoid onCreate(Bundle savedInstanceState) {  

                 super.onCreate(savedInstanceState);  

                 setContentView(R.layout.view_personal_info);  

                 SharedPreferencespreferences = getSharedPreferences("first",  

                               Context.MODE_PRIVATE);  

                 booleanisFirst = preferences.getBoolean("isfrist", true);  

                 if(isFirst) {  

                        createDeskShortCut();  

                 }  

                 SharedPreferences.Editoreditor = preferences.edit();  

                 editor.putBoolean("isfrist",false);  

                 editor.commit();  

          }  

     

          /**

           * 创建快捷方式

           */  

          publicvoid createDeskShortCut() {  

     

                 Log.i("coder","------createShortCut--------");  

                 //创建快捷方式的Intent  

                 IntentshortcutIntent = new Intent(  

                               "com.android.launcher.action.INSTALL_SHORTCUT");  

                 //不允许重复创建  

                 shortcutIntent.putExtra("duplicate",false);  

                 //需要现实的名称  

                 shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,  

                               getString(R.string.app_name));  

     

                 //快捷图片  

                 Parcelableicon = Intent.ShortcutIconResource.fromContext(  

                               getApplicationContext(),R.drawable.ic_launcher);  

     

                 shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,icon);  

     

                 Intentintent = new Intent(getApplicationContext(),  

                               AndroidLayoutActivity.class);  

                 //下面两个属性是为了当应用程序卸载时桌面 上的快捷方式会删除  

                 intent.setAction("android.intent.action.MAIN");  

                 intent.addCategory("android.intent.category.LAUNCHER");  

                 //点击快捷图片,运行的程序主入口  

                 shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,intent);  

                 //发送广播。OK  

                 sendBroadcast(shortcutIntent);  

          }  

    }  


  4. 千万别忘记在AndroidManifest.xml加上下面的这个权限:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值