安卓app如何在安装时创建快捷方式
来源:互联网 发布:dsd音乐播放软件 编辑:程序博客网 时间:2024/05/17 23:41
1:首先声明权限:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
2:在启动页里面的onCreate方法(或其他合适的方法)中执行如下方法:public void initShortCut() { // intent发送隐式意图,去创建快捷方式 Intent addIntent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); //不让重建 addIntent.putExtra("duplicate", false); // 将应用的图标设置为Parceable类型 Parcelable icon = Intent.ShortcutIconResource.fromContext(this, R.mipmap.icon_release); // 点击图标之后的意图操作 Intent myIntent = new Intent(Intent.ACTION_MAIN); myIntent.setClassName(this, getClass().getName()); // 设置快捷方式的名称 addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "百度影音"); // 设置快捷方式的图标 addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); // 设置快捷方式的意图 addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, myIntent); // 发送广播 sendBroadcast(addIntent);}
3:但是上面的走完之后还有瑕疵就是每次点击快捷键进入都会发送创建快捷键的意图,虽然设置了不要重复创建,但是每次都弹出来已经创建过了的信息也是蛮让人不爽的,所以需要在发送意图前判断是否已经创建过图标了:3.1:声明权限:
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
3.2方法:
//判断是否创建过了快捷方式public static boolean isAddShortCut(Context context) { boolean isInstallShortcut = false; ContentResolver cr = context.getContentResolver(); String AUTHORITY = getAuthorityFromPermission(context, "com.android.launcher.permission.READ_SETTINGS"); final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/favorites?notify=true"); Cursor c = cr.query(CONTENT_URI, new String[]{"title"}, "title=?", new String[]{context.getString(R.string.app_name)}, null); if (c != null && c.getCount() > 0) { isInstallShortcut = true; } if (c != null) { c.close(); } return isInstallShortcut;}public static String getAuthorityFromPermission(Context context, String permission) { if (TextUtils.isEmpty(permission)) { return null; } List<PackageInfo> packInfos = context.getPackageManager().getInstalledPackages(GET_PROVIDERS); if (packInfos == null) { return null; } for (PackageInfo info : packInfos) { ProviderInfo[] providers = info.providers; if (providers != null) { for (ProviderInfo provider : providers) { if (permission.equals(provider.readPermission) || permission.equals(provider.writePermission)) { return provider.authority; } } } } return null;}
0 0
- 安卓app如何在安装时创建快捷方式
- android安卓创建快捷方式
- 安卓创建桌面快捷方式
- 关于如何在启动时创建桌面快捷方式
- [安卓] 如何判断桌面已经添加APP应用的快捷方式
- 安卓代码中创建快捷方式
- 如何在程序中创建快捷方式?
- 如何在程序中创建快捷方式
- C#如何编程在桌面创建快捷方式
- 如何在快速启动栏创建快捷方式
- 如何在ubuntu中创建快捷方式
- 如何自动在桌面创建快捷方式
- 如何在linux桌面上创建webstorm快捷方式
- App快捷方式的创建
- App创建快捷方式
- 为app创建快捷方式
- 创建app快捷方式
- 创建APP桌面快捷方式?
- 2017年现代开发者中最好的11个PHP框架 排行榜
- Oracle Form 数据提交方式
- JNI基础(四)小程序,java调C,并且传递参数
- 使用Retrofit的一些实例
- html 5 本地数据库(二)-- Web Sql Database核心方法openDatabase、transaction、executeSql 详解
- 安卓app如何在安装时创建快捷方式
- PAT advanced 1001
- struts2中的Action接收表单传递过来参数的3种方法
- ‘XXX’ was compiled with optimization
- 不错的地区选择设计
- css命名规范
- 测试浏览器
- Material Design学习之TabLayout
- IAR 链接外部二进制文件的实现