Android如何创建桌面快捷方式

作者:bjp000111 时间:2022-09-16 18:37:06 

Android创建桌面的快捷方式
概述 :创建桌面快捷方式相当与创建一个程序的入口,就像我们程序在安装完毕后会自动创建一个图标到桌面。其实创建桌面快捷方式跟创建一个程序入口差不多,但是像QQ会话一样创建一个QQ好友的会话快捷方式,就得动态的创建图标,名字了。

1.首先权限是必不可少的

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

2.然后就是在你项目配置文件里面配置


<activity
     android:name="com.easemob.chatuidemo.activity.ChatActivity" >
     <intent-filter>
       <category android:name="android.intent.category.LAUNCHER" />
       <action android:name="android.intent.action.CREATE_SHORTCUT" />
     </intent-filter>
 </activity>

这个actvity即为你要快捷方式点击后跳转的那一个activity

3.然后就是你要创建快捷方式的方法。

代码如下:


public void CreateShotCut(final Context context, final Class<?> clazz,
     final String name, final String image) {

Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
   // 加入action,和category之后,程序卸载的时候才会主动将该快捷方式也卸载
   shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER);
   shortcutIntent.setClass(context, clazz);
   /**
    * 创建一个Bundle对象让其保存将要传递的值
    */
   Bundle bundle = new Bundle();
   bundle.putString("userId", userId);
   shortcutIntent.putExtras(bundle);
   /**
    * 设置这条属性,可以使点击快捷方式后关闭其他的任务栈的其他activity,然后创建指定的acticity
    */
   shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

// 创建快捷方式的Intent
   Intent shortcut = new Intent(Intent.ACTION_CREATE_SHORTCUT);
   // 不允许重复创建
   shortcut.putExtra("duplicate", false);
   // 点击快捷图片,运行的程序主入口
   shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
   // 需要现实的名称
   shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);

// 快捷图片
   Parcelable icon = Intent.ShortcutIconResource.fromContext(
       getApplicationContext(), R.drawable.ic_launcher);
   shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
   shortcut.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
   context.sendBroadcast(shortcut);
 }

这行代码的重要性就在如果没有这一行,那么在你点击这个快捷方式,跳转的时候就会直接跳到这个应用的栈顶(如果指定的activity在栈顶,也不会跳转其上而是销毁)而不是指定的那一个Activity(刚开始没加这条属性的时候,一直跳转不到指定的activity上)。

shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

如果想要动态的添加图片即创建快捷方式的时候获取网路上的图片来进行设置其快捷图片则使用

 // Intent.EXTRA_SHORTCUT_ICON 是bitmap对象
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON,bitmap);

这行代码,你可以请求网路图片后转换为BitMap后设置进去。

ok动态的创建快捷方式就这样完成了。

标签:Android,快捷方式
0
投稿

猜你喜欢

  • SpringMVC中@RequestMapping注解用法实例

    2022-02-26 11:22:58
  • 详细解读C++编程中的匿名类类型和位域

    2023-11-02 23:08:18
  • Spring AOP对嵌套方法不起作用的解决

    2022-01-08 16:55:03
  • Java各种排序算法汇总(冒泡,选择,归并,希尔及堆排序等)

    2021-10-05 14:46:23
  • Java中方法的重写与成员变量的隐藏

    2023-06-01 01:35:55
  • c#单例模式(Singleton)的6种实现

    2021-07-01 10:17:51
  • C#套接字(Socket)通信之UDP组播详解

    2022-06-11 05:49:52
  • maven的pom文件与打包详解

    2023-12-24 00:23:51
  • 用Java实现简单ATM机功能

    2023-05-10 13:36:03
  • Java调用shell命令涉及管道、重定向时不生效问题及解决

    2021-07-18 17:02:25
  • Java--Socket通信(客户端服务端双向)

    2021-09-21 20:58:37
  • maven profile实现多环境配置的示例

    2023-09-24 12:02:57
  • 利用C#9.0新语法如何提升if语句美感

    2021-06-15 12:48:54
  • java之Object类用法实例

    2023-11-05 04:14:26
  • Android中RecyclerView点击Item设置事件

    2023-08-22 18:23:19
  • C# ComboBox控件“设置 DataSource 属性后无法修改项集合”的完美解决方法

    2023-01-30 04:11:58
  • Android4.0平板开发之隐藏底部任务栏的方法

    2023-11-29 15:11:44
  • Android自定义view Path 的高级用法之搜索按钮动画

    2023-12-23 06:53:28
  • Android通过应用程序创建快捷方式的方法

    2021-07-08 00:41:09
  • Java 全方位讲解面向对象特点与使用

    2023-07-21 18:34:06
  • asp之家 软件编程 m.aspxhome.com