歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android中實現Launcher功能之添加快捷方式

Android中實現Launcher功能之添加快捷方式

日期:2017/3/1 10:40:34   编辑:Linux編程

前言: 最近一直在看Launcher模塊,經過差不多兩個月學習,終於摸透了Launcher的一些主要功能實現,目前繼續還處於

摸索狀態。未看Launcher時,於我而言,只能膜拜,以為所有功能都是它實現的 ;入門後,才發現,Launcher的很多功能只是

集成了框架/應用程序提供的功能。很多陌生的東西,只有接觸了才感歎:“oh ,原來是這樣的!”

今天先給大家分享下Launcher如何實現添加快捷方式(Shortcut) ,後續會慢慢增加其他方面的功能,幫助大家“一葉而知秋”。

本文相關工程源碼下載

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/1月/9日/Android中實現Launcher功能之添加快捷方式/

具體來說,Launcher中的快捷方式有兩種類型:

1 、"偽"快捷方式 —— 應用程序類型

2 、"真"快捷方式 —— Activity具備<action/>為ACTION_CREATE_SHORTCUT的配置信息

這兩種類型的快捷方式是怎麼勾搭在一起的,在下面大家通過代碼自己理解,也不方便細說了。

關於如何創建一個”真”快捷方式(Shortcut)的App ,大家可以先去看看楊豐盛老師的博客《Android特色開發之桌面組件》 ,

從中我們可以掌握如何創建一個快捷方式,實現也不是很難。

知識點介紹:

知識點一 、ACTION_PICK_ACTIVITY使用說明 ,具體可以參考SDK Intent類

功能:顯示匹配附加值為EXTRA_INTENT的所有Activity,並將它們以列表呈現給用戶。當用戶從該列表選中一項

時,並不會啟動該Activity(這與與ACTION_CHOOSER不同,此Action會啟動用戶選擇的Activity),而是將該Activity的詳細信

息(可能包括Action、ComponentName、data信息等)以Intent對象返回給調用者(通常為onActivityResult方法)。

附加值:EXTRA_INTENT 顯示所有匹配顯示所有匹配附加值為EXTRA_INTENT的Activity,

EXTRA_TITLE 作為顯示列表即所有Activity的標題 。

因此,根據ACTION_PICK_ACTIVITY的特性,真正地創建快捷方式需要兩步走:

第一步:發送ACTION_PICK_ACTIVITY以及EXTRA_INTENT,找到我們希望能創建快捷方式的Activity列表。

第二步:根據第一步所選擇的Activity返回的Intent對象,再次發送此Intent對象,即可創建該Activity提供給

我們快捷方式了。

例如,下面我們只是簡單的發送一個請求顯示所有應用程序的Intent,如下:

  1. //重新發送一個Action為Pick_Activity的Intent,獲取所有應用程序信息
  2. Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY);
  3. Intent mainIntent = new Intent () ;
  4. mainIntent.setAction(Intent.ACTION_MAIN);
  5. mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
  6. pickIntent.putExtra(Intent.EXTRA_INTENT, mainIntent);
  7. pickIntent.putExtra(Intent.EXTRA_TITLE, "選擇應用程序"); //設置界面title
  8. //繼續選擇所有應用程序
  9. startActivityForResult(pickIntent,MY_REQUEST_ALL_APPLICATION );

ACTION_PICK_ACTIVITY效果圖如下:

點擊某一具體Activity , 即可選擇創建該Activity的快捷方式了。

Copyright © Linux教程網 All Rights Reserved