Android如何创建桌面快捷方式
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 studio报: java.lang.ExceptionInInitializerError 错误
本篇文章主要介绍了Android studio报: java.lang.ExceptionInInitializerError错误的解决方法,具有很好的参考价值。下面跟着小编一起来看下吧2017-03-03Android TextView的maxEms和maxLength属性区别
这篇文章主要为大家介绍了Android TextView的maxEms和maxLength属性区别,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-03-03Ubuntu中为Android系统上编写Linux内核驱动程序实现方法
本文主要介绍在Ubuntu 上为Android系统编写Linux内核驱动程序, 这里对编写驱动程序做了详细的说明,对研究Android源码和HAL都有巨大的帮助,有需要的小伙伴可以参考下2016-08-08
最新评论