<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="king.demo"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.CREATE_SHORTCUT" /> //需要加上這一句
</intent-filter>
</activity>
</application>
</manifest>
package king.demo;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//要添加的捷徑的Intent
Intent addShortCut;
//判斷是否要添加捷徑
if(getIntent().getAction().equals(Intent.ACTION_CREATE_SHORTCUT)){
addShortCut = new Intent();
//設定捷徑的名字
addShortCut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "發送郵件");
//構建捷徑中專門的表徵圖
Parcelable icon = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);
//添加捷徑表徵圖
addShortCut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
//構建捷徑執行的Intent
Intent mailto = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:xxx@xxx.com"));
//添加捷徑Intent
addShortCut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mailto);
//正常,返回,構建一個捷徑
setResult(RESULT_OK, addShortCut);
}
else{
setResult(RESULT_CANCELED);
}
//關閉
finish();
}
}
啟動模擬器,就可以在Shortcuts列表中找到所添加的捷徑,將其添加到案頭。