android:在一个应用中创建其它应用的快捷启动方式Launcher
2015-01-09 20:31
656 查看
在Activity中调用:
首先判断是否已经有此icon:
创建icon:
首先判断是否已经有此icon:
private boolean hasShortcut(final String appName) { boolean isInstallShortcut = false; final ContentResolver cr = this.getContentResolver(); final String AUTHORITY = "com.android.launcher.settings"; final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/favorites?notify=true"); Cursor c = cr.query(CONTENT_URI, new String[] { "title", "iconResource" }, "title=?", new String[] { appName.trim() }, null); if (c != null && c.getCount() > 0) { isInstallShortcut = true; } return isInstallShortcut; }
创建icon:
/** * 为程序创建桌面快捷方式 */ private void addShortcut(final GameInfo gameInfo) { final String packageName = gameInfo.getPackageName(); Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.setPackage(packageName); List<ResolveInfo> apps = getPackageManager().queryIntentActivities(resolveIntent, 0); PackageInfo pInfo = null; try { pInfo = getPackageManager().getPackageInfo(packageName, PackageManager.GET_META_DATA); if (pInfo != null) { if (0 != (pInfo.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE)) { return; } } } catch (NameNotFoundException e) { Log.e(TAG, Log.getStackTraceString(e)); } if (apps.size() == 0) { Toast.makeText(this, "无法创建快捷方式", Toast.LENGTH_SHORT).show(); return; } ResolveInfo ri = apps.iterator().next(); if (ri != null) { Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, gameInfo.getName()); shortcut.putExtra("duplicate", false);// 不允许重复创建 ComponentName cn = new ComponentName(packageName, ri.activityInfo.name); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(cn)); // 显示的图标 Bitmap iconBitmap = ((BitmapDrawable)pInfo.applicationInfo.loadIcon(getPackageManager())).getBitmap(); shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, iconBitmap); // 发送广播用以创建shortcut this.sendBroadcast(shortcut); } }
相关文章推荐
- 解析android创建快捷方式会启动两个应用的问题
- Android笔记:Android应用启动后自动创建桌面快捷方式
- Android应用启动后自动创建桌面快捷方式
- Android应用启动后自动创建桌面快捷方式
- Android 6.0 AMS分析的第二条线:以Launcher启动一个Activity为例,分析应用进程的创建、Activity的启动,以及他们和AMS之间的交互等知识;
- Android应用启动后自动创建桌面快捷方式
- Android应用启动后自动创建桌面快捷方式
- [Android] Android应用启动后自动创建桌面快捷方式
- Android应用启动后自动创建桌面快捷方式
- Android开发:应用启动后自动创建桌面快捷方式(三星机常见)
- 关于android创建快捷方式会启动两个应用的问题(二)
- 解析Android应用启动后自动创建桌面快捷方式的实现方法
- 关于android创建快捷方式会启动两个应用的问题(一)
- Android应用启动后自动创建桌面快捷方式
- android应用如何自动创建快捷方式到Launcher
- 关于android创建快捷方式会启动两个应用的问题
- 关于android创建快捷方式会启动两个应用的问题(一)
- Android应用启动后自动创建桌面快捷方式
- 关于android创建快捷方式会启动两个应用的问题
- Android应用启动后自动创建桌面快捷方式