Android - 快捷方式
簡介
幫助使用者快速啟動應用程式中的常見或推薦功能
建立方式
- 靜態快捷方式:在打包到APK或應用包中的資原始檔中定義。適合在使用者與應用程式互動的整個生命週期內使用一致結構連結到內容的應用程式,即固定功能,固定跳轉的頁面。
- 動態快捷方式:只能在執行時由應用釋出,更新和刪除(靜態和動態加在一起最多四個,因為大多數啟動器只能顯示四個)。用於上下文相關的應用程式中的操作,快捷方式將需要經常更新。
- 固定快捷方式:如果使用者授予許可,則可以在執行時將固定的快捷方式新增到受支援的啟動器中(無數量限制)。該方式生成的快捷方式內容一般由使用者驅動,比如瀏覽器生成特定網頁的快捷方式、遙控器生成特定裝置的快捷方式。
使用
- 靜態快捷方式
- 在res下新建xml資料夾,然後新建檔案作為靜態快捷方式配置檔案,這邊新建的檔名叫shortcuts.xml,填寫快捷方式相關配置
<?xml version="1.0" encoding="utf-8"?>
<!--根標籤是shortcuts代表一堆快捷方式-->
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<!--每個shortcut標籤代表一個快捷方式-->
<shortcut
<!--必須值:ID值,後面動態時可通過這個ID控制該快捷方式的顯示或隱藏,不可以使用String資原始檔裡面的值引入-->
android:shortcutId="play"
<!--必須值:顯示快捷方式後的簡短描述,長度不超過10個字元-->
android:shortcutShortLabel="@string/play_shortcut_short_label"
<!--可選值:擴充套件短語,有足夠空間才展示,長度不超過25個字元-->
android:shortcutLongLabel="@string/play_shortcut_long_label"
<!--可選值:預設true,如果設定為false,使用者點選該快捷方式時無效,這時最好配置shortcutDisabledMessage告訴使用者為什麼無效-->
android:enabled="true"
<!--可選值:當該快捷方式無效時提示文字,enabled為true不起作用-->
android:shortcutDisabledMessage="@string/play_disabled_message"
<!--可選值:快捷方式的圖示-->
android:icon="@drawable/video">
<!--使用者點選該快捷方式發生的意圖-->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.dean.smartApp"
android:targetClass="com.dean.smartApp.MainActivity">
<!--通過intent意圖裡面配置extra來告訴MainActivity需要展示的fragment-->
<extra
android:name="shortcut"
android:value="play"/>
</intent>
<!--為應用程式的快捷方式執行的操作型別提供分組,例如建立新的聊天訊息-->
<categories android:name="android.shortcut.conversation" />
</shortcut>
<shortcut
android:shortcutId="music"
android:enabled="true"
android:icon="@drawable/music"
android:shortcutShortLabel="@string/music_shortcut_short_label"
android:shortcutLongLabel="@string/music_shortcut_long_label"
android:shortcutDisabledMessage="@string/music_disabled_message">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.dean.smartApp"
android:targetClass="com.dean.smartApp.MainActivity">
<extra
android:name="shortcut"
android:value="music"/>
</intent>
<categories android:name="android.shortcut.conversation" />
</shortcut>
</shortcuts>
- 在Manifest啟動Activity下新增配置檔案
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity>
- 動態快捷方式
使用該方式可以引導使用者自定義快捷方式以快速開啟某個頁面
- 新建快捷方式,這邊方法和上面xml中差不多
ShortcutInfo shortcut = new ShortcutInfo.Builder(context, "play")
.setShortLabel("高清影視")
.setLongLabel("16K高清,不一樣的體驗")
.setIcon(Icon.createWithResource(context, R.drawable.icon_shortcut_play))
.setIntent(playIntent)
.build();
- 更新快捷方式列表
//通過SystemService獲取Shortcut管理類
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
//通過setDynamicShortcuts替換原有整個快捷方式列表
shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));
//也可以通過addDynamicShortcuts來增加一些快捷方式
shortcutManager.addDynamicShortcuts(Arrays.asList(shortcut));
//也可以通過updateShortcuts來更新原有的快捷方式列表
shortcutManager.updateShortcuts(Arrays.asList(shortcut));
//移除所有快捷方式
shortcutManager.removeAllDynamicShortcuts();
//通過ID刪除指定的快捷方式
shortcutManager.removeDynamicShortcuts(shortcutIds);
- 固定快捷方式
Android 8.0(API級別26)及更高版本上支援
- 第一種:之前靜態和動態建立的快捷方式,在桌面長按應用圖示會顯示快捷方式列表,這時長按列表某一項然後拖動到桌面空白位置即可。
- 第二種:程式碼建立
//獲取ShortcutManager
ShortcutManager shortcutManager =
context.getSystemService(ShortcutManager.class);
//通過isRequestPinShortcutSupported來判斷當前裝置是否支援固定快捷方式
if (shortcutManager.isRequestPinShortcutSupported()) {
//拿到需要固定的快捷方式,可以是之前靜態或動態建立好的
ShortcutInfo pinShortcutInfo =
new ShortcutInfo.Builder(context, "play").build();
//建立一個意圖
Intent pinnedShortcutCallbackIntent =
shortcutManager.createShortcutResultIntent(pinShortcutInfo);
//和其他系統控制元件互動一樣需要延時意圖PendingIntent
PendingIntent successCallback = PendingIntent.getBroadcast(context,0,pinnedShortcutCallbackIntent,0);
//建立固定快捷方式
shortcutManager.requestPinShortcut(pinShortcutInfo,successCallback.getIntentSender());
}
相關文章
- Android快捷方式解密Android解密
- Android快捷方式-ShortcutsAndroid
- Android桌面新增快捷方式的實現Android
- Android 適配多種ROM的快捷方式Android
- Android 適配多種 ROM 的快捷方式Android
- 【Android】Eclipse效能優化,快捷方式,文件註釋AndroidEclipse優化
- Android O中關於快捷方式和微件的更新Android
- Android Launcher研究(四)-----------桌面應用快捷方式的開發!Android
- Android 7.0新特性——桌面長按圖示出現快捷方式Android
- Android studio快捷方式【 游標返回/前進被佔用】Android
- android隨筆:長按APP圖示彈出快捷方式(shortcuts)AndroidAPP
- Android7-1圖示快捷方式(AppShortcuts)實現DemoAndroidAPP
- pycharm的快捷方式PyCharm
- Google Chrome 快捷方式GoChrome
- C#快捷方式C#
- manjaro 新增tash 快捷方式JAR
- 用好Windows快捷方式【轉】Windows
- iOS APP建立桌面快捷方式iOSAPP
- main方法快捷方式設定AI
- iOS新增快捷方式到桌面iOS
- Windows 下的快捷方式研究Windows
- 快捷方式的函式 (轉)函式
- win10怎麼建立快捷方式_windows10建立桌面快捷方式的方法Win10Windows
- 網頁快捷方式怎麼設定_win10如何建立網頁桌面快捷方式網頁Win10
- Linux:ubuntu桌面操作快捷方式LinuxUbuntu
- eclipse中的快捷方式整理Eclipse
- Linux下新增桌面快捷方式Linux
- 在Delphi中操作快捷方式 (轉)
- win10清理無效快捷方式方法 win10怎麼清理無效快捷方式Win10
- Photoshop 中各種快捷方式整理分享
- 如何在Mac桌面設定快捷方式?Mac
- ABAP Netweaver和git的快捷方式Git
- 用java 能建立桌面快捷方式嗎?Java
- 使用VBS建立快捷方式的程式碼
- win10怎麼建立桌面快捷方式_win10新增程式快捷方式到桌面的步驟Win10
- win10去掉快捷方式箭頭怎麼操作 win10取消桌面快捷方式箭頭方法Win10
- win10怎麼刪除快捷方式箭頭_win10去掉桌面快捷方式箭頭步驟Win10
- win10傳送到桌面快捷方式的方法_win10系統怎麼傳送到桌面快捷方式Win10