Android工具类之创建快捷方式的方法详解

91 阅读1分钟

假如我在一个activity中创建一个创建快捷方式的方法:createShortCut();

public void createShortCut(){

//创建快捷方式的Intent

Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");

//不允许重复创建

shortcutintent.putExtra("duplicate", false);

//需要现实的名称

shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcutname));

//快捷图片

Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.icon);

shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

//点击快捷图片,运行的程序主入口

shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(getApplicationContext() ,

EnterActivity.class));

//发送广播。OK

sendBroadcast(shortcutintent);

}

二、长按桌面弹出的桌面快捷方式创建

如何在添加到一个SHORTCUTS列表中,就是你长按桌面弹出来的那个东东。

首先在注册activity时,需要添加一个action为android.intent.action.CREATE_SHOERTCUT的intentFilter.如下所

示:

接下来就是就是设置快捷方式的图标、名称、事件等属性。这里图表的生成,android里提供了专门的方法来生成。

public class ShortCutTest extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

createShortCut();

}

public void createShortCut(){

Intent addShortCut;

//判断是否需要添加快捷方式

if(getIntent().getAction().equals(Intent.ACTION_CREATE_SHORTCUT)){

addShortCut = new Intent();

//快捷方式的名称

addShortCut.putExtra(Intent.EXTRA_SHORTCUT_NAME , "我的快捷方式");

//显示的图片

Parcelable icon = ShortcutIconResource.fromContext(this, R.drawable.icon);

addShortCut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

//快捷方式激活的activity,需要执行的intent,自己定义

addShortCut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent());

//OK,生成

setResult(RESULT_OK, addShortCut);

}else{

//取消

setResult(RESULT_CANCELED);
}
}
}