之前的文章中,已經分享過如何呼叫 apk 來更新 app,不過真實的世界總是要求更多,有各式各樣的檔案等著我們去面對(開啟),先回顧一下在 Java 世界中的分享文

http://luhuajcdd.iteye.com/blog/1560225

其實不管哪種檔案,開檔原理都是類似的,最主要的差別是在 intent.setDataAndType (uri, xxx); 這句

當然我們可以自己寫一個函式,把各式各樣的開檔方式透過 if..elseif..else 的方式包起來,呼叫端就不用管是什麼檔案形式了,但是,這真的是我們想要嗎?

有沒有一種方式可以像在 Windows 的世界中,交給作業系統處理就好,而不用我們自己傷腦筋呢?

文章標籤

縹緲 發表在 痞客邦 留言(4) 人氣()

如果手機 GPS 設定沒有開啟,可以透過程式碼來開啟嗎?

 根據筆者明查暗訪的結果,似乎有人說可以,也有人說不行,但是把網路上講的程式碼都試過一遍,至少在筆者的 Acer liquid e1 以及 Asus nexus 7 是不行的

網路上資料參考

http://stackoverflow.com/questions/4721449/how-can-i-enable-the-gps-programmatically-on-android

文章標籤

縹緲 發表在 痞客邦 留言(1) 人氣()

原始 FMX Listview 這個元件提供的顯示欄位,即便將 ListView.ItemAppearance.ItemAppearance 這個屬性設定為 ListItemRightDetail,還是只有 Item.Text 與 Item.Detail 兩個欄位可以設定文字類的資料,這對於實務上的使用情境來說,應該是不太夠用的。

其實 XE5 在安裝的時候,已經有把客製化過的 Listview 元件放到硬碟中了,只是沒安裝,不知道為啥?等著大家自己去挖寶?

如果你的 XE5 是按照預設路徑安裝的話,那麼就請你開啟 XE5,然後打開如下兩個專案

C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile\Delphi\ListView\SampleListViewMultiDetailAppearancePackage.dpk

C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile\Delphi\ListView\SampleListViewRatingsAppearancePackage.dpk

文章標籤

縹緲 發表在 痞客邦 留言(5) 人氣()

假設 apk 檔案是放在下述目錄 /storage/sdcard0/Android/data/pHello.apk

那麼該如何寫,才可以把該檔案叫起來安裝呢?

其實還蠻簡單的,之前在「輕鬆實用學習 delphi XE5 for Android app(二)App 自我更新機制(b)下載更新所需檔案(apk)」提到相關的 code,有部分是為了下載檔案才會用到的,如果只是要呼叫一個已經存在的 apk 檔案,就不用那麼麻煩嚕

不囉唆,直接把 code Post 出來吧...

文章標籤

縹緲 發表在 痞客邦 留言(0) 人氣()

對像筆者準備真的拿 XE5 來實戰的 delphi 忠實用戶來說,到底 XE5 支援哪些 Android 設備,其實還真的蠻困擾的,一方面就算 app 可以開發出來,也不知道到底客戶可不可以安裝,能不能使用,會不會黑屏?;另外一方面,就算想事前做些限制,以目前官方能提供的資源來看,也不知道可以跟客服人員說些什麼,畢竟 android 設備實在太多了,正面表列?負面表列?好像都不太對說...粉困擾

話說回來,粉困擾還是不能當成藉口,就只能硬上了吧,傳到橋頭自然直,不過我們還是盡量蒐集一下到底有哪些 XE5 與 android 設備相容的資料可以參考

首先先看 Embarcadero 官方的部分有篇「Android Devices Supported for Application Development

http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development

除了有說明支援哪些 android 作業系統版本外,還有列出 EMBT 測試過的 android 設備,並且說明是用那個 app 作為測試基準。不過如果您仔細數一下,就會發現這個 list 中所列出的 android 設備實在少的可憐,總共只有區區 30 種,跟在市面上流通的各式各樣、少說上百種的 android 設備比起來,根本就是杯水車薪,聊勝於無,況且這份文件似乎也沒有再更新了,一直保持當初 XE5 發表時的資訊,所以粉多熱門的新機也不會出現在表列。

文章標籤

縹緲 發表在 痞客邦 留言(6) 人氣()

補遺篇就是各式各樣不特定的主題,可能是網友提的問題,也可能是在實際開發過程中的一些經驗分享

 

(一)XE5 Android Device Support

(二)如何呼叫 SDCard 中的 apk?

(三)Listview Display More Detail(欄位)?

文章標籤

縹緲 發表在 痞客邦 留言(1) 人氣()

今天是今年最後一天,先預祝大家新年快樂!在 XE5 mobile 的道路上,我們都還是新手,也還有很多需要學習的地方,歡迎大家互動交流。

由於 XE5 目前尚不提供「直接」撰寫 Android receiver 或是 service 等的能力,詢問過 Gordon 老大 EMBT 有沒有說何時會提供解決方案?Gordon 老大說有在研究但沒有時間表,所以如果現在就要撰寫屬於你自己的 receiver 或是 service,那麼唯一的一條路,就是撰寫部分 java class、compiler 成 classes.dex 後,再把它 import 進 XE5 中。至於如何把 java class 編譯成 classes.dex 呢?如果你有一路看前面幾篇 blog 過來的話,你應該有發現 blong 老大已經幫我們準備好了一個「build.bat」,話說 batch 這種檔案,非得一定要上了些年紀的才會看過、瞭解其中語法,不然新新人類其實是粉少接觸這類檔案的。

 

build.bat 這個 batch 檔案,主要是幫你完成兩件事情,第一件是把 java class 編譯成 test_classes.dex,再 merge 到原本 EMBT 的 classes.dex 變成一個新的 classes.dex,deploy 的時候就改用這個新的 classes.dex 就可以了。不過因為大家開發環境不同,所以必須要先調整過  build.bat 檔案內容,才有辦法順利完成編譯的動作。

接下來就提示幾個重點

文章標籤

縹緲 發表在 痞客邦 留言(1) 人氣()

即將進入的這最後一個步驟,也是小弟我潛心研究在這塊花費時間最久的部分。為了簡化各位實做的難度,我們將直接藉助 blong 老大產出的 classes.dex,但是在 XE5 client 端的部分,由於 blong 老大給我們的 smaple code 太複雜,所以就讓小弟我現醜簡化一番。

首先,我們要下載在前言部分有提到的 blong 老大在 Delphi and Android services (part 2) 這篇文章中提供給我們的 source code,下載後解壓縮,你可以在 \DelphiServiceDemo\java\output\dex 目錄找到 blong 老大為我們編譯好的 classes.dex,先記得有這個檔案,我們稍晚會用到…

接下來,還是就新增一個專案,畫面類似如下

其中 Register Device 在 (b)申請 GCM 與設備端(client)註冊並取得 regID 的文章中已經說明過了,這邊就不再贅述。這次的重點,集中在 Register Receiver 這個 Button Click 下去該做些什麼事情。先在 Form private 的部分,宣告兩個全域變數,並 uses ActivityReceiverU,如下

文章標籤

縹緲 發表在 痞客邦 留言(10) 人氣()