android 快捷方式
来源:互联网 发布:剑三丐姐脸型数据 编辑:程序博客网 时间:2024/05/16 08:54
针对网上的许多快捷方式创建代码的总结,
1.发现创建快捷方式时一定要指定action,否则后续的检查是否已创建和删除快捷键都可能无效
2.有的rom并不会严格升级launcher,所以都检查一遍
3.如果发现点击生成的快捷方式提示未安装应用,那么需要给activity添加IntentFilter,如
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /></intent-filter>4.需要添加的权限<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/><uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/><uses-permission android:name="com.android.launcher2.permission.READ_SETTINGS" /><uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS" />
工具类
public class ShortcutUtil { /** * 创建快捷方式 * @param ctx * @param name 快捷方式名称 * @param iconId 快捷方式图标 * @param target 快捷方式的意图, 记得一定要设置action */ public static void createShortCut(Context ctx, String name, int iconId, Intent target){ Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); //不允许重复创建 shortcutintent.putExtra("duplicate", false); //需要现实的名称 shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); //快捷图片 Parcelable icon = Intent.ShortcutIconResource.fromContext(ctx, iconId); shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); //点击快捷图片,运行的程序主入口 shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, target); //发送广播。OK ctx.sendBroadcast(shortcutintent); } // 判读是否已经存在快捷方式 public static boolean isExistShortCut(Context ctx, String name) { ContentResolver cr = ctx.getContentResolver(); Cursor c = null; try{ //sdk大于19的时候,launcher3的设置查找 String urlStr = "content://com.android.launcher3.settings/favorites?notify=true"; Uri CONTENT_URI = Uri.parse(urlStr); c = cr.query(CONTENT_URI, null, "title=?", new String[] { name }, null); if (c != null && c.getCount() > 0) { return true; } if (c != null) { c.close(); } //sdk大于8的时候,launcher2的设置查找 urlStr = "content://com.android.launcher2.settings/favorites?notify=true"; CONTENT_URI = Uri.parse(urlStr); c = cr.query(CONTENT_URI, null, "title=?", new String[] { name }, null); if (c != null && c.getCount() > 0) { c.moveToFirst(); String uri = c.getString(c.getColumnIndex("intent")); return true; } if (c != null) { c.close(); } //android.os.Build.VERSION.SDK_INT < 8时 urlStr = "content://com.android.launcher.settings/favorites?notify=true"; CONTENT_URI = Uri.parse(urlStr); c = cr.query(CONTENT_URI, null, "title=?", new String[] { name }, null); if (c != null && c.getCount() > 0) { return true; } return false; }finally { if(c != null){ c.close(); } } } /** * 删除快捷方式 * @param ctx * @param name 快捷方式名称 * @param target 快捷方式的意图, 记得一定要设置action,如果是 */ public static void deleteShortcut(Context ctx, String name, Intent target) { Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT"); // 快捷方式名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, target); ctx.sendBroadcast(shortcut); }}
0 0
- Android 快捷方式
- Android 快捷方式
- Android 快捷方式
- Android 快捷方式
- Android 快捷方式
- android 快捷方式
- ANDROID快捷方式
- Android 快捷方式
- Android快捷方式
- android 快捷方式
- Android 创建快捷方式 删除快捷方式
- Android代码添加快捷方式与删除快捷方式
- Android创建快捷方式,Phonegap创建快捷方式
- Android快捷方式的设定
- Android创建快捷方式(shortcut)
- android桌面添加快捷方式
- android 代码创建快捷方式
- android创建快捷方式
- fab修复
- 快速排序算法
- Java实现插入排序
- Linux vim使用教程
- 创建China Azure只读用户
- android 快捷方式
- ElasticSearch——跨域访问
- 汇编:动态画出一棵七彩圣诞树
- Another unnamed CacheManager already exists in the same VM.解决方法
- iOS 查找子视图
- jquery checked 操作多选
- Android 网络框架Volley源码讲解
- xUtils框架
- Sping基础