Android--创建快捷方式
manifest 中添加权限:
"com.android.launcher.permission.READ_SETTINGS"/>
"com.android.launcher.permission.INSTALL_SHORTCUT"/>在点击快捷方式对应的那个activity添加属性:
"android.intent.action.MAIN" /> "android.intent.category.LAUNCHER"
/>
"android.intent.action.CREATE_SHORTCUT"> |
主要代码如下:
import
android.content.ContentResolver;import android.content.Intent;import
android.content.Intent.ShortcutIconResource;import
android.database.Cursor;import
android.graphics.BitmapFactory;import android.net.Uri;import android.os.Bundle;public class
AddShortCutActivity extends
Activity {@Overridepublic void onCreate(Bundle
savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);boolean flag
=IfaddShortCut();//如果已经创建,则不需要在创建if(flag==false){addShortCut();}}public void
addShortCut(){Intent shortcut = new
Intent("com.android.launcher.action.INSTALL_SHORTCUT");// 设置属性shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getResources().getString(R.string.app_name));ShortcutIconResource iconRes =
Intent.ShortcutIconResource.fromContext(AddShortCutActivity.this,
R.drawable.icon);shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON,iconRes);// 是否允许重复创建shortcut.putExtra("duplicate",
false);Intent intent = new
Intent(Intent.ACTION_MAIN);intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);intent.addCategory(Intent.CATEGORY_LAUNCHER);intent.setClass(AddShortCutActivity.this,
AddShortCutActivity.class);// 设置启动程序System.out.println("createIcon");shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,
intent);AddShortCutActivity.this.sendBroadcast(shortcut);}public boolean
IfaddShortCut(){boolean isInstallShortcut =
false ;final ContentResolver cr =
AddShortCutActivity.this.getContentResolver();//本人的2.2系统是”com.android.launcher2.settings”,网上见其他的为"com.android.launcher.settings"final String AUTHORITY =
"com.android.launcher2.settings";AUTHORITY +
"/favorites?notify=true");Cursor c = cr.query(CONTENT_URI,new String[]
{"title","iconResource"
},"title=?",new String[] {getString(R.string.app_name )
},
null);//XXX表示应用名称。if(c!=null
&&
c.getCount()>0){isInstallShortcut = true
;System.out.println("已创建");}return isInstallShortcut ;}}

浙公网安备 33010602011771号