Android程序首次运行自动创建桌面快捷方式的方法

首先在AndroidManifest.xml加上下面的这个权限:

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

以下是一个示例:

package acer.lx.org;

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 extends Activity {

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

}

0%