使用 Xamairn.Aandroid 開發 Android 客製化 Launcher…
主題: |
使用 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