模仿添加QQ好友桌面快捷方式

 1 /**
 2      *
 3      * @param context
 4      * @param tname 桌面快捷方式的名字
 5      * @param icon 好友头像
 6      */
 7     public static void addShortCut(Context context, String tname, int icon) {
 8         // 安装的Intent
 9         Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
10
11         // 快捷名称
12         shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, tname);
13         // 快捷图标是允许重复
14         shortcut.putExtra("duplicate", false);
15
16         Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
17         shortcutIntent.putExtra("tName", tname);
18         shortcutIntent.setClassName("com.example.qqshortcut", "com.example.qqshortcut.MainActivity");
19         shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
20         shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
21
22         // 快捷图标
23         ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(context, icon);
24         shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
25
26         // 发送广播
27         context.sendBroadcast(shortcut);
28     }
 1 /**
 2      * 判断是否已存在该快捷方式
 3      * @param context
 4      * @param name 快捷方式的名字
 5      * @return
 6      */
 7     public static boolean hasShortcut(Context context,String name)
 8     {
 9         String authority = getAuthorityFromPermission(context,"permission.READ_SETTINGS");
10         boolean isInstallShortcut = false;
11         try {
12             ContentResolver cr = context.getContentResolver();
13             String url;
14             if (authority == null) {
15                 int systemversion = Integer.parseInt(android.os.Build.VERSION.SDK);
16                 /*大于8的时候在com.android.launcher2.settings 里查询(未测试)*/
17                 if(systemversion < 8){
18                     url = "content://com.android.launcher.settings/favorites?notify=true";
19                 }else{
20                     url = "content://com.android.launcher2.settings/favorites?notify=true";
21                 }
22             }else{
23                 url = "content://" + authority + "/favorites?notify=true";
24             }
25             Cursor c = cr.query(Uri.parse(url),null,"title=?",
26                     new String[] {name}, null);
27             if(c!=null && c.moveToFirst()){
28                 c.close();
29                 isInstallShortcut = true ;
30             }
31         } catch (Exception e) {
32             e.printStackTrace();
33         }
34         return isInstallShortcut ;
35     }
 1 /**
 2      * 动态获取查询的provider(provider跟SDK版本和厂商有关系,会有所不同),获取provider后,记得在androidManifeset.xml加上对应的权限
 3      * 不同厂商com.android.launcher.permission.READ_SETTINGS权限不同,目前做兼容只能把目前知道的权限都加到配置文件里
 4      * @param context
 5      * @param permission
 6      * @return
 7      */
 8     public static String getAuthorityFromPermission(Context context, String permission){
 9         try {
10             if (permission == null) return null;
11             List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS);
12             if (packs != null) {
13                 for (PackageInfo pack : packs) {
14                     ProviderInfo[] providers = pack.providers;
15                     if (providers != null) {
16                         for (ProviderInfo provider : providers) {
17                             Log.e("------", "\r\n【" + provider.readPermission + "】\r\n");
18                             if (provider.readPermission!=null && provider.readPermission.endsWith(permission)) {
19                                 return provider.authority;
20                             }
21                         }
22                     }
23                 }
24             }
25         } catch (Exception e) {
26             e.printStackTrace();
27         }
28         return null;
29     }
时间: 2024-09-29 23:35:53

模仿添加QQ好友桌面快捷方式的相关文章

QQ是怎样实现好友桌面快捷方式的?

QQ是怎样实现好友桌面快捷方式的? 不知道什么时候,QQ推出了好友桌面快捷方式.方便用户和最常保持联系的好友一键联系.核心功能一:若QQ启动了.则双击快捷方式直接打开好友聊天界面:核心功能二:若QQ未启动,则双击快捷方式后启动QQ后打开好友聊天界面. 但其是怎样实现的呢?让我们一起挖一挖. 一.QQ好友桌面快捷方式操作演示        直接上图,非常明了,只是多解释. 二.QQ好友桌面快捷方式的Windows实现 上图是桌面好友快捷方式的几个关键属性.解析例如以下: 1).目标--关联的进程.

网页自动添加qq好友

网页自动添加qq好友 有的时候我们打开一些网站会跳出自动添加QQ好友的窗口,这是怎么实现的呢? 将推广工具里免得链接复制即可. 原文地址:https://www.cnblogs.com/xiaoniaohhl/p/11334904.html

一键跳转添加QQ好友 点击链接直接跳转到QQ好友页面如何实现

网页可以唤起QQ群,这我们都知道可以做到,那如何唤起呢?下面就做一个简单的介绍,希望可以帮助到有需要的朋友 1.官方提供的几种加群的链接 官方的加群代码的获取前提是我们具有权限(也就是群主或管理权限) 2.首先我们需要通过此链接:https://qun.qq.com/join.html 去QQ群官网,一键加群 a .进入该页面之后,我们登录自己的qq账号,选择要创建一键加群的群 ? b.这以下部分获取页面代码.iphone代码.andriod代码.二维码 ? ? ? 以上3部分为别是前端.ios

Android应用添加(创建)和删除及判断是否存在桌面快捷方式

Android应用添加(创建)和删除及判断是否存在桌面快捷方式-Android新手入门-eoe 移动开发者论坛 - Powered by Discuz! Android桌面程序提供了应用添加和删除桌面快捷方式的功能以及判断快捷方式是否存在, 只要传入快捷方式标题.图标及点击快捷方式执行的应用Intent即可.代码如下: 1.Android添加桌面快捷方式 /** * 为当前应用添加桌面快捷方式 * * @param cx * @param appName *            快捷方式名称

java模仿qq好友面板的布局(BoxLayout问题)

.............. JLabel ll = new JLabel(dlg.getNameText() + ":" + dlg.getIPText(), ii[index], JLabel.LEFT); tmp = new JPanel();//将标签添加到这个面板中 tmp.setLayout(new FlowLayout(FlowLayout.CENTER)); tmp.setBackground(new Color(255, 0, 255)); /* * BoxLayou

Ubuntu下安装ideaIU14并添加桌面快捷方式

1 安装jdk 这里以安装官方jdk1.7.79为例,jdk7网页:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 1.1 下载jdk1.7.79 $ wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz 1.2 解压 $ tar -zxvf jdk-7u79-li

Android 添加、移除和判断 桌面快捷方式图标

思路: Launcher为了应用程序能够定制自己的快捷图标,就注册了一个 BroadcastReceiver 专门接收其他应用程序发来的快捷图标定制信息.所以只需要根据该 BroadcastReceiver 构造出相对应的Intent并装入我们的定制信息,最后调用 sendBroadcast 方法就可以创建一个快捷图标了. 步骤: 创建快捷方式必须要有权限: 创建快捷方式的广播的 Intent 的 action 设置 com.android.launcher.action.INSTALL_SHO

【15.03.13】手动快速在Linux桌面上添加一个程序图标快捷方式

部分Linux发行版提供了在桌面上添加某个程序图标的快捷操作方法,但有的发行版可能没有提供,或者说刚上手某个发行版,暂时还没找到在哪里操作.这个时候,我们可以手动在Linux桌面上添加一个快捷方式的程序图标. Linux桌面程序图标的文件名是"XXX.desktop",当然,这个文件名并不是我们在桌面上看到的图标的名字.关于desktop文件的详细结构,如果想了解,可以参考这篇技术文献:Linux Desktop Entry 文件深入解析. 但是对于普通用户来说,我们没必要了解那么多的

Android桌面快捷方式

Android创建桌面的快捷方式 概述 :创建桌面快捷方式相当与创建一个程序的入口,就像我们程序在安装完毕后会自动创建一个图标到桌面.其实创建桌面快捷方式跟创建一个程序入口差不多,但是像QQ会话一样创建一个QQ好友的会话快捷方式,就得动态的创建图标,名字了. 1.首先权限是必不可少的 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 2.然后就是在你项目配置