android开发步步为营之49:创建APP桌面快捷方式



 网上参考过N多的资料,最后发现还是这样写比较靠谱,不会重复创建快捷方式。

   //创建快捷方式

    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 intent = new Intent(this,HomeActivity.class);//后面的HomeActivity.class是我的程序第一次加载的activity的名字,大家要注意

            intent.setAction("com.figo.activity.home");//这个也是home的具体路径

            shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);

            //显示的图标

            Parcelable icon = Intent.ShortcutIconResource.fromContext(this,R.drawable.ic_launcher);

            shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

            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));   

            

          //这里的intent要和创建时的intent设置一致

            Intent intent = new Intent(this,HomeActivity.class);

            intent.setAction("com.figo.activity.home");

               shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent); 

            sendBroadcast(shortcut); 

        } 

配置文件AndroidManifest.xml

权限记得加上

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

添加上intent-filter

     <activity

            android:name="com.figo.activity.HomeActivity"

            android:launchMode="singleTask"

            android:screenOrientation="portrait"

            android:theme="@style/Theme.NoTitleBar"

            android:windowSoftInputMode="adjustPan" >

             <intent-filter>

                <action android:name="com.figo.activity.home" />

            </intent-filter>

        </activity>



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。