Xamairn.Android Launcher Android Visual Stdio

使用 Xamairn.Aandroid 開發 Android 客製化 Launcher…

James Tsai 2017/09/17 17:39:27
2262

主題:

使用 Xamairn.Aandroid 開發 Android 客製化 Launcher…

文章簡介:

在現在很多我們隨處可見的小型裝置或設備,常常都會使用 Android 來當作業系統。所以,若要客製化佈署在這些小型裝置或設備的 Android 系統時,第一步就是需要一個一開機就執行該 App 的 App,這種 App 我們稱呼為 Launcher App,當然這種 Launcher App 也可以使用 Xamarin.Android 實現完成的。

作者:

James Tsai

版本/產出日期:

V1.0/2017.9.16



1. 前言


• 製作Android 的客製化Launcher App。

2. 環境準備


• 安裝好開發Xamarin的Visual Studio 2015/2017



3. 本文


前置準備


• 準備一個Xamarin.Android的空專案。




• 確定可以正常的編譯並執行。




• 另外,建議使用一個全新的Android模擬器做後面的客製化Launcher App的開發測試,才不會因為原本的 Launcher App換成我們的客製化的測試Launcher App後,沒寫好完整的Launcher App的功能,而導致於這個Android 模擬器就無法做任何其他的事情。


使用Xamarin.Android 實作 Android Launcher App


• 首先,先來調整一下我們建立的這個App的名稱與顯示名稱。打開App1 專案底下的Resources底下的values資料夾中的 Strings.xml,並且將既有存在的 app_name 的Key/Value pair的 value 值,改成 “My Launcher”。




• 再開啟 MainActivity.cs,找到 MainActivity 類別上方的ActivityAttribute,並且將其中的Label改成”@string/app_name”。




• 由於在我們目前這個測試App當中的MainActivity 的 ActivityAttribute有掛上 Label 的設定(並且將設定MainLauncher 為 true ),就會用 Label 設定當作 MainActivity 出現在手機應用程式集當中的顯示名稱。若 MainActivity 的 ActivityAttribute 沒有掛上 Label 的設定時,就會用在專案的 Properties 底下的 AndroidManifest.xml 中所設定的 application label 作為的顯示名稱。




• 並且在這邊注意我們都將value值設定為”@string/app_name”,再建置Android App的過程,會去讀取App1專案底下的 Resources 底下的 Strings.xml檔當中所設定的 resource中key值為”app_name”的Key/Value pair的Value資料。

• 因次再次執行此測試App時所看到的MainActivity畫面在Title 跟 在應用程式列表中的App名稱都已經換成”My Launcher”的字樣。




• 接著再次回到MainActivity.cs 的MainActivity 的 ActivityAttribute,繼續幫 ActivityAttribute加入其他的屬性設定,如下圖紅框所示。



將LaunchMode 設定為 SingleTask,ExcludeFromRecents設定為 true。


• 接著在ActivityAttribute 的下方,我們繼續掛上 IntentFilterAttribute 並且設定其Actions跟 Categories 的值,如下圖紅框所示。



這裡的 Actions 跟 Categories 的設定很重要,因為有了這兩個設定,我們這個App的MainActivity才會變成 Android系統所認識的Launcher。


• 接著測試執行此App,執行起來會發現跟之前一樣沒什麼特別之處。




• 如果這時候按一下Home鍵,就會發現 Android 跳出會詢問”選取主螢幕應用程式”的對話框。




• 會看到這個”選取主螢幕應用程式”詢問當中的選項出現了我們的”My Launcher”,如果真的也選了我們的”My Launcher”並且選擇”一律採用”。




那恭喜,之後按 ”Home” 鍵就都會出現我們這個畫面黑壓壓一片的”My Launcher”。


重新啟動Android裝置/模擬器


• 當重新啟動此Android裝置或模擬器後,就會發現啟動後的畫面就直接會是我們這隻”My Launcher” App了,只不過畫面上什麼東西都沒有。



而且無論按 ”Back鍵” 還是 ”Home鍵” 都沒有任何作用。因為身為一個Android的Launcher App,就應該要做相關的Launcher App該有的功能,只是我們在這個App裡面什麼都沒寫,才會造成這種現象。


• 如果還可以使用從裝置的頂部下滑所出現的設定畫面,那就再進入設定當中的裝置”主螢幕”,改回此Android 裝置原本的 ”Launcher App”,就可以恢復正常。




4. 參考來源


• How to Write Custom Launcher App in Android:
http://arnab.ch/blog/2013/08/how-to-write-custom-launcher-app-in-android/

• How To Make An App To Be The Main Launcher?:
https://forums.xamarin.com/discussion/12785/how-to-make-an-app-to-be-the-main-launcher

James Tsai