APP开发实战168-APP快捷图标的功能设计
来源:互联网 发布:c 高级编程第10版 编辑:程序博客网 时间:2024/05/16 02:30
30.16 APP快捷图标的功能设计
30.16.1简介
如果APP在Android7.1(API25)或更高级别的系统上运行,在APP中,可以定义一些快捷图标和特定的功能关联起来,这些快捷图标可以显示在支持此功能的桌面上,如下图所示:
每个快捷图标可以关联一个或多个intent,让用户快速启动某项功能。例如,可以使用快捷图标启动以下功能:
在地图APP 中可以使用导航用户到一个特定的位置
在社交APP中,可以给朋友发信息
在游戏APP中,可以加载最近保存的游戏进度
只有主Activity(处理MAIN action和LAUNCH category的Activity)可以有快捷图标,如果APP有多个主Activity,这些Activity可以有不同的快捷图标集合。
通常用户用手指长压桌面上的APP图标时,会显示静态和动态快捷图标,但不同的桌面APP,可能会支持不同的手势。
虽然其它APP不能访问快捷图标里的元数据,但桌面可以访问这些数据,因此这些元数据不能包含敏感的用户信息。
在APP中使用两种不同类型的快捷图标:静态和动态快捷图标。一个APP可以创建的静态和动态图标的数量之和不能超过五个。
30.16.2 静态快捷图标
静态快捷图标被定义在资源文件中,打包在APK中,只有更新APP的版本,才能改变快捷图标的图标、文件描述和功能等。
创建静态图标,需按以下步骤处理:
1在AndroidManifest.xml文件中的主Activity声明中,增加快捷图标的资源文件说明:
<activity android:name="com.example.android.appshortcuts.Main">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN" />
<categoryandroid:name="android.intent.category.DEFAULT" />
<categoryandroid:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-dataandroid:name="android.app.shortcuts"
android:resource="@xml/shortcuts"/>
</activity>
2创建快捷图标的资源文件 res/xml/shortcuts.xml:
<shortcutsxmlns:android="http://schemas.android.com/apk/res/android" >
<shortcut
android:shortcutId="add_website"
android:icon="@drawable/add"
android:shortcutShortLabel="@string/add_new_website_short"
android:shortcutLongLabel="@string/add_new_website"
>
<intent
android:action="com.example.android.appshortcuts.ADD_WEBSITE"
android:targetPackage="com.example.android.appshortcuts"
android:targetClass="com.example.android.appshortcuts.Main"
/>
</shortcut>
</shortcuts>
30.16.3 动态快捷图标
动态图标是通过使用ShortcutManager API在APP运行的时候被创建的,在APP运行的时候,可以改变关联的功能、更新或移除动态快捷图标。
如下创建一个打开百度网页的快捷图标:
ShortcutManager shortcutManager =getSystemService(ShortcutManager.class);
ShortcutInfo shortcut = new ShortcutInfo.Builder(this, "scIdOpenUrl")
.setShortLabel("Web site")
.setLongLabel("Open the web site")
.setIcon(Icon.createWithResource(context, R.drawable.icon_website))
.setIntent(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.baidu.com/")))
.build();
shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));
30.16.4 Pinned快捷图标
运行在前台的APP也可以在运行时把静态或动态快捷图标复制在桌面,这样的图标叫pinned shortcut。
Pinnedshortcut在桌面显示为与APP图标不一样的图标,而且每个APP所能产生的pinned shortcut没有数量限制。这种图标不能被APP移除(APP可以使它不失效),可以被用户手动移除;当APP被卸载的时候,会被移除,或用户在设置中,清除APP的数据时,也会被移除。
当一个动态快捷图标被pinned后,即使动态快捷图标被移除了,对应的pinned shortcut任然能够被看到而且可以正常使用。
如果一个pinned shortcut基于静态快捷图标创建的,当静态快捷图标不能被使用的时候,pinned shortcut仍然保留在桌面上,但不能被使用了。
- APP开发实战168-APP快捷图标的功能设计
- APP开发实战128-APP Log功能设计
- APP开发实战136-APP常用功能设计
- APP开发实战166-全屏模式的功能设计
- APP开发实战167-开机自启动的功能设计
- APP开发实战137-WebView功能设计
- APP开发实战134-APP版本更新功能设计
- 移动APP开发功能设计
- APP开发实战150-Android 提示功能设计(AlertDialog、Toast和Snackbar的使用)
- APP实用开发—桌面添加快捷图标
- APP的注册和登录功能设计
- app 新手引导功能设计
- App后台开发运维和架构实践学习总结(4)——APP的注册和登录功能设计
- 一个人开发APP系列之实战1 制作APP产品启动图标
- Hybrid App开发实战
- hybrid app开发实战
- Hybrid App开发实战
- Hybrid App开发实战
- CPU的内部架构和工作原理
- bzoj 4872 [Shoi2017]分手是祝愿
- linux硬盘分区和挂载
- 面型对象程序设计与分析--ATM机用况图及分
- 二叉树的路径和
- APP开发实战168-APP快捷图标的功能设计
- poj 1062(nyoj 510) 昂贵的聘礼(dijkstra)
- Swift3 数组复制
- 在Ubuntu中使用apt-get的时候,始终显示“E:无法定位软件包”
- [论文阅读]Rank Pooling for Action Recognition
- 安卓中剥夺EditText焦点方法
- 神奇的网站Shodan(网站)
- 三道水题
- CodeForces 798D Mike and distribution