专栏名称: 安卓开发精选
伯乐在线旗下账号,分享安卓应用相关内容,包括:安卓应用开发、设计和动态等。
目录
相关文章推荐
鸿洋  ·  2025 Google I/O 带来的 ... ·  5 小时前  
复利大王  ·  北大软微男在女厕所偷拍! ·  6 小时前  
复利大王  ·  北京97师大美女征友 ·  昨天  
复利大王  ·  美女硕士被妈妈的驭男术坑了 ·  昨天  
复利大王  ·  复旦大四小迷妹,被交大phd海王pua ·  昨天  
51好读  ›  专栏  ›  安卓开发精选

Android 7.1 新特性:App Shortcuts 简介

安卓开发精选  · 公众号  · android  · 2016-11-22 21:20

正文

请到「今天看啥」查看全文


: 'com.android.application'

android {

//如果只是创建静态快捷方式,那么版本号任意

//即使 compileSdkVersion 、targetSdkVersion 为 23 ,在 Android 7.1 的 Nexus 和 Pixel 设备上也能使用。

//但是如果是创建动态快捷方式,因为则必须使 compileSdkVersion 为 25

compileSdkVersion 25

buildToolsVersion "25.0.0"

defaultConfig {

applicationId "com.littlejie.shortcuts"

minSdkVersion 23

targetSdkVersion 25

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

// something else ...

}


关于 compileSdkVersion 、 minSdkVersion 以及 targetSdkVersion 的区别可参考这篇文章

  • http://www.open-open.com/lib/view/open1453253049558.html


创建动态快捷方式


创建动态快捷方式主要依靠 ShortManager 、 ShortcutInfo 和 ShortcutInfo.Builder 这几个类来实现。ShortcutInfo 和 ShortcutInfo.Builder 主要用来构造快捷方式对象, ShortManager 是一个系统服务,用于管理应用快捷方式,ShortManager 可以通过以下方式获取:


ShortManager shortManager = ( ShortcutManager ) getSystemService ( Context . SHORTCUT_SERV ICE );


ShortManager 主要有以下几个功能:


  • 发布:通过调用 setDynamicShortcuts(List) 替换整个快捷方式列表或者通过 addDynamicShortcuts(List) 往已存在的快捷方式列表中添加快捷方式。

  • 更新:调用 updateShortcuts(List) 来更新已存在的快捷方式列表

  • 移除:调用 removeDynamicShortcuts(List) 移除列表中指定快捷方式,调用 removeAllDynamicShortcuts() 移除列表中所以快捷方式。

  • 禁用:因为用户可能将您任意的快捷方式拖拽到桌面,而这些快捷方式会将用户引导至应用中不存在或过期的操作,所以可以通过调用 disableShortcuts(List) 来禁用任何已存在的快捷方式。调用 disableShortcuts(List, Charsquence) 会给出错误提示。


下面代码主要演示了使用 ShortManager 实现动态发布、更新、移除以及禁用快捷方式。


动态创建快捷方式核心代码:


public class MainActivity extends Activity implements View . OnClickListener {

private static final String TAG = MainActivity . class . getSimpleName ();

private ShortcutManager mShortcutManager ;

private ShortcutInfo [] mShortcutInfos ;

@ Override

protected void onCreate ( Bundle savedInstanceState ) {

super . onCreate ( savedInstanceState );

setContentView ( R . layout . activity_main );

//这里常量Context.SHORTCUT_SERVICE会报错,不用管,可正常编译。看着烦的话把minSdkVersion改为25即可

mShortcutManager = ( ShortcutManager ) getSystemService ( Context . SHORTCUT_SERVICE );

mShortcutInfos = new ShortcutInfo []{ getShoppingShortcut (), getDateShortcut ()};

findViewById ( R . id . btn_set ). setOnClickListener ( this );

findViewById ( R . id . btn_add ). setOnClickListener ( this );

findViewById ( R . id . btn_update ). setOnClickListener ( this );

findViewById ( R . id . btn_disabled ). setOnClickListener ( this );

findViewById ( R . id . btn_remove ). setOnClickListener ( this );

findViewById ( R . id . btn_removeAll ). setOnClickListener ( this );

findViewById ( R . id . btn_print_max_shortcut_per_activity ). setOnClickListener ( this );

findViewById ( R . id . btn_print_dynamic_shortcut ). setOnClickListener ( this );

findViewById ( R . id . btn_print_static_shortcut ). setOnClickListener ( this );

}

private ShortcutInfo getAlarmShortcut ( String







请到「今天看啥」查看全文