Android 创建,验证和删除桌面快捷方式 (删除快捷方式测试可用)
2013-10-28 16:08
453 查看
原文地址:/article/5320061.html
测试环境为Adnroid 2.1以上。
第一步:AndroidManifest.xml 权限配置:
添加快捷方式权限:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
验证快捷方式是否存在权限: <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
删除快捷方式权限: <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
代码:
调用测试代码:
在网上找了很久都是一样的代码,删除那块搞了一个下午才弄好,其实很简单的东东。
第一次发文章,Adnroid新人。多多交流和指导呀。呵呵。
测试环境为Adnroid 2.1以上。
第一步:AndroidManifest.xml 权限配置:
添加快捷方式权限:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
验证快捷方式是否存在权限: <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
删除快捷方式权限: <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
代码:
public class ShortCutSample { /** * 添加快捷方式 * */ public void creatShortCut(Activity activity,String shortcutName,int resourceId) { Intent intent = new Intent(); intent.setClass(activity, activity.getClass()); /*以下两句是为了在卸载应用的时候同时删除桌面快捷方式*/ intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); //不允许重复创建 shortcutintent.putExtra("duplicate", false); //需要现实的名称 shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutName); //快捷图片 Parcelable icon = Intent.ShortcutIconResource.fromContext(activity.getApplicationContext(), resourceId); shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); //点击快捷图片,运行的程序主入口 shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent); //发送广播。OK activity.sendBroadcast(shortcutintent); } /** * 删除快捷方式 * */ public void deleteShortCut(Activity activity,String shortcutName) { Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT"); //快捷方式的名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,shortcutName); //在网上看到到的基本都是一下几句,测试的时候发现并不能删除快捷方式。 //String appClass = activity.getPackageName()+"."+ activity.getLocalClassName(); //ComponentName comp = new ComponentName( activity.getPackageName(), appClass); //shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp)); /**改成以下方式能够成功删除,估计是删除和创建需要对应才能找到快捷方式并成功删除**/ Intent intent = new Intent(); intent.setClass(activity, activity.getClass()); intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,intent); activity.sendBroadcast(shortcut); } /** * 判断是否存在快捷方式 * */ public boolean hasShortcut(Activity activity,String shortcutName) { String url = ""; int systemversion = Integer.parseInt(android.os.Build.VERSION.SDK); /*大于8的时候在com.android.launcher2.settings 里查询(未测试)*/ if(systemversion < 8){ url = "content://com.android.launcher.settings/favorites?notify=true"; }else{ url = "content://com.android.launcher2.settings/favorites?notify=true"; } ContentResolver resolver = activity.getContentResolver(); Cursor cursor = resolver.query(Uri.parse(url), null, "title=?",new String[] {shortcutName}, null); if (cursor != null && cursor.moveToFirst()) { cursor.close(); return true; } return false; } }
调用测试代码:
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); ShortCutSample sample =new ShortCutSample(); String shortcutName=getString(R.string.app_name); if(sample.hasShortcut(this, shortcutName)) sample.deleteShortCut(this,shortcutName); else sample.creatShortCut(this,shortcutName,R.drawable.icon); } }
在网上找了很久都是一样的代码,删除那块搞了一个下午才弄好,其实很简单的东东。
第一次发文章,Adnroid新人。多多交流和指导呀。呵呵。
相关文章推荐
- Android创建和删除桌面快捷方式
- Android应用添加(创建)和删除及判断是否存在桌面快捷方式
- Android 为应用创建、删除桌面快捷方式
- Android创建和删除桌面快捷方式
- Android应用添加(创建)和删除及判断是否存在桌面快捷方式
- 【ANDROID】创建/删除桌面快捷方式
- Android创建和删除桌面快捷方式
- Android创建和删除桌面快捷方式
- Android创建和删除桌面快捷方式
- Android创建和删除桌面快捷方式
- 【Android开发总结(1)】桌面快捷方式创建、删除、查询等方式
- Android创建和删除桌面快捷方式
- Android 为应用创建、删除桌面快捷方式
- Android创建和删除桌面快捷方式
- android桌面快捷方式的创建与删除
- Android 应用桌面快捷方式 创建 删除
- Android创建和删除桌面快捷方式
- Android创建和删除桌面快捷方式
- Android创建和删除桌面快捷方式