如果用语言描述一个项目显得苍白无力的时候,我就是让他看见,所见即所得。如下图所示:
1.项目图如下:
2.增加Shrotcut的截图如下:
3.增加Shortcut之后Home Screen*(桌面的截图)如下:
在桌面增加快捷方式之后,当想运行这个程序时候可以直接回到Home(桌面)之后点击这个快捷方式就可以运行这个程序了。
代码的详细分析如下:
(1)权限
如果应用程序有增加shortcut(快捷方式的功能),它必须在manifest文件中增加相应的权限,即:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
(2)创建shortcut的Activity的action:
增加Shortcut的Activity,action是必须是android.intent.action.CREATE_SHORTCUT,如下,也可以在代码中设置:
<activity android:name=".CreateShortcutActivity" >
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
(3)创建shortcut的代码:
public static final String ACTION_CREATE_SHORTCUT
Activity Action: Creates a shortcut.
Input: Nothing.
Output: An Intent representing the shortcut. The intent must contain three extras: SHORTCUT_INTENT (value: Intent), SHORTCUT_NAME (value: String), and SHORTCUT_ICON (value: Bitmap) or SHORTCUT_ICON_RESOURCE (value: ShortcutIconResource).
大致意思如下,一个Intent代表一个shortcut。这个intent必须包含三部分参数:快捷方式的意图(值为意图类型),快捷方式的名称(值为字符串类型),快捷方式的图标(类型为位图)或者快捷方式图标资源(值为快捷方式图标资源类型)。
// Build the intent for the chosen activity
//Set the intent of the shrorcut
Intent intent = new Intent();
intent.setComponent(new ComponentName(info.activityInfo.applicationInfo.packageName,
info.activityInfo.name));
Intent result = new Intent();
result.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent);
// Set the name of the shortcut
result.putExtra(Intent.EXTRA_SHORTCUT_NAME, info.loadLabel(mPackageManager));
// Build the icon info for shorcut
Drawable drawable = info.loadIcon(mPackageManager);
if (drawable instanceof BitmapDrawable) {
BitmapDrawable bd = (BitmapDrawable) drawable;
result.putExtra(Intent.EXTRA_SHORTCUT_ICON, bd.getBitmap());
}
// Set the result
setResult(RESULT_OK, result);
(4)创建成功之后,发送广播:
// Boradcast an intent that tells the home screen to create a new shortcut
result.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(result);
开源项目apps-for-android 的下载地址如下http://code.google.com/p/apps-for-android/