Android實現(xiàn)向桌面添加快捷方式的代碼

2014-09-06 14:02:15來源:fengyuzhengfan的專欄作者:CrazyCodeBoy

對于一個希望擁有更多用戶的應(yīng)用來說,用戶桌面可以說是所有軟件的必爭之地,如果用戶在手機桌面上建立了該軟件的快捷方式,用戶將會更頻繁地使用該軟件。因此,所有 Android程序都應(yīng)該允許用戶把軟件的快捷方式添加

對于一個希望擁有更多用戶的應(yīng)用來說,用戶桌面可以說是所有軟件的必爭之地,如果用戶在手機桌面上建立了該軟件的快捷方式,用戶將會更頻繁地使用該軟件。因此,所有 Android程序都應(yīng)該允許用戶把軟件的快捷方式添加到桌面上。

在程序中把一個軟件的快捷方式添加到桌面上,只需要如下三步即可:

1. 創(chuàng)建一個添加快捷方式的Intent該Intent的Action屬性值應(yīng)該為com.android.launcher.action.INSTALLSHORTCUT,。

2. 通過為該Intent加Extra屬性來設(shè)置快捷方式的標題、圖標及快捷方式對應(yīng)啟動的程序。

3. 調(diào)用sendBroadcast()方法發(fā)送廣播即可添加快捷方式。

實例代碼:

/**
 * 向桌面添加快捷方式
 * @author jph
 * Date:2014.09.05
 */
public class AddShortcut extends Activity {
 Button btnAddShortCut;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.mian);
  btnAddShortCut=(Button)findViewById(R.id.btnAddShortCut);
  btnAddShortCut.setOnClickListener(new OnClickListener() {   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    //創(chuàng)建一個添加快捷方式的Intent
    Intent addSC=new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
    //快捷鍵的標題
    String title=getResources().getString(R.string.shotcut_title);
    //快捷鍵的圖標
    Parcelable icon=Intent.ShortcutIconResource.fromContext(
      AddShortcut.this, R.drawable.ic_launcher);
    //創(chuàng)建單擊快捷鍵啟動本程序的Intent
    Intent launcherIntent=new Intent(AddShortcut.this, AddShortcut.class);
    //設(shè)置快捷鍵的標題
    addSC.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);
    //設(shè)置快捷鍵的圖標
    addSC.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
    //設(shè)置單擊此快捷鍵啟動的程序
    addSC.putExtra(Intent.EXTRA_SHORTCUT_INTENT,launcherIntent);
    //向系統(tǒng)發(fā)送添加快捷鍵的廣播
    sendBroadcast(addSC);
   }
  });
 }
}
最后為應(yīng)用程序創(chuàng)建快捷鍵添加權(quán)限:

<!-- 指定添加安裝快捷方式的權(quán)限 -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

關(guān)鍵詞:Android