Xamairn.Android Launcher Android Visual Stdio

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

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

主題

使用 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檔當中所設定的 resourcekey值為app_nameKey/Value pairValue資料

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




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



LaunchMode 設定為 SingleTaskExcludeFromRecents設定為 true


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



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


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




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




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




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


重新啟動Android裝置/模擬器


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



而且無論按 Back 還是 Home 都沒有任何作用。因為身為一個AndroidLauncher 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