public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
                         
        //只第一次运行时生成,以后就不生成了
        SharedPreferences preferences = getSharedPreferences("isfrist_file",
                Context.MODE_PRIVATE);
                         
        boolean isFirst = preferences.getBoolean("isfrist"true);
                         
        if (isFirst) {
            //创建快捷方式
            createDeskShortCut();
        }
        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean("isfrist"false);
        editor.commit();
    }
    public void createDeskShortCut() {
        // 创建快捷方式的Intent
        Intent shortcut = new Intent(
                "com.android.launcher.action.INSTALL_SHORTCUT");
        // 不允许重复创建
        shortcut.putExtra("duplicate"false);
        // 需要现实的名称
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
                getString(R.string.app_name));
        // 快捷图片
        Parcelable icon = Intent.ShortcutIconResource.fromContext(
                getApplicationContext(), R.drawable.ic_launcher);
                         
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
        // 快捷方式入口
        Intent intent = new Intent(getApplicationContext(), MainActivity.class);
        // 下面两个属性是为了当应用程序卸载时,删除桌面上的快捷方式
        intent.setAction("android.intent.action.MAIN");
        intent.addCategory("android.intent.category.LAUNCHER");
        // 点击快捷图片,运行的程序主入口
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
        // 发送广播 OK
        sendBroadcast(shortcut);
    }
}

 

还要添加创建快捷方式权限

 

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

 

 

本文出自 “天马行空” 博客,请务必保留此出处http://shaotao.blog.51cto.com/7606729/1332258

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()