/**
* 创建桌面快捷方式 一
*/
private void
addShortcutToDesktop(){
Intent shortcut
= new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
// 不允许重建
shortcut.putExtra("duplicate",
false);
// 设置名字
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,this.getString(R.string.app_name));
// 设置图标
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(this,
R.drawable.ic_launcher));
//
设置意图和快捷方式关联程序
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,new Intent(this,
this.getClass()).setAction(Intent.ACTION_MAIN));
// 发送广播
sendBroadcast(shortcut);
}
/**
*方式二
*/
if (Intent.ACTION_CREATE_SHORTCUT.equals(action)) {
Intent shortcut = new Intent(Intent.ACTION_CREATE_SHORTCUT);
// 不允许重建
shortcut.putExtra("duplicate", false);
// 设置名字
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
this.getString(R.string.app_name));
// 设置图标
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this,
R.drawable.ic_launcher));
// 设置意图和快捷方式关联的程序
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,
new Intent(this, this.getClass()));
//将结果返回到launcher
setResult(RESULT_OK, intent);
}
需在xml中设置IntentFilter
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT" />
</intent-filter>
/**
*
判断是否已创建快捷方式
* @return
*/
private boolean hasInstallShortcut()
{
boolean hasInstall =
false;
final String AUTHORITY =
"com.android.launcher.settings";
Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY
+
"/favorites?notify=true");
Cursor
cursor = this.getContentResolver().query(CONTENT_URI, new
String[] { "title", "iconResource" }, "title=?",
new String[]
{ this.getString(R.string.app_name) }, null);
if (cursor != null && cursor.getCount()
> 0) {
hasInstall = true;
}
return
hasInstall;
}
所需权限:
<uses-permission
android:name="com.android.launcher.permission.READ_SETTINGS"/><!-- 判断所需权限
-->
<uses-permission
android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/><!--
创建快捷方式权限 -->