目前分類:補遺篇 delphi XE5/XE6 for Android app (12)

瀏覽方式: 標題列表 簡短摘要

一開使用 XE5 都好好的,直到 XE5 Upd2 與 XE6 出來後,重複安裝自己寫的 app 偶而就會遇到這個問題「發生衝突,安裝套件所使用的簽名與現有套件的簽名相同」,只知道跟 delphi 版本升級有關,但就是不知道怎麼解

老招還是求教 google 大師,不過找到的都是說先移除舊的 app 再安裝新的,這我也知道,問題是如果我想讓 app 可以自我更新的話呢?尤其之前不是寫過「輕鬆實用學習 delphi XE5 for Android app(二)App 自我更新機制」的分享文,如果這個問題不能解,那...自我更新不就自打嘴巴了?還要叫使用者先自行移除...那又怎麼自動下載讓使用者安裝新的?

發生的來龍去脈,還是先交代一下好了。其實粉簡單,隨便在 delphi XE5 的環境中寫一個 app ,然後在手機上安裝好這個 app,接下來把這個 app 的 source code 原封不動的轉移到另外一個 delphi 的開發環境(XE5、XE5 Upd2、XE6)均可,重新編譯,把編譯好的 apk 放到剛剛那台手機上安裝...就會出現「未安裝應用程式...發生衝突,安裝使用的簽名與...」

既然 google 沒給答案,只好求教這次 XE6 發表研討會來台灣的 Embarcadero Product Manager - Marco Cantu

文章標籤

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

承蒙 K.Top 站長大大厚愛不吝賜教,這考題小弟雖然有想過,但是一直沒空去研究,老闆不是都說,先求有再求好,所以想說 GCM 都玩出來了,那就先去玩別的吧,GCM 圖示暫時就先用系統的黑白圖示,有總比沒有好,沒想到站長大大精益求精,於是花了點時間認真研究

說實在的,這部分除了 java 的資料可以參考,應該沒有 delphi 國內外的同好有提供相關資料可以參考(至少筆者粉用力找也找不到),於是只好摸著石頭過河嚕...

先看一下成果

    

圖示改由 Angry Birds 來通知您...

文章標籤

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

RAD StudioC++Builder Delphi XE6 已經正式 Release 了

What's New in Delphi and C++Builder XE6

http://docwiki.embarcadero.com/RADStudio/XE6/en/What%27s_New_in_Delphi_and_C++Builder_XE6

安裝後起始畫面

文章標籤

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

 一直以來,如果你是用 android 手機,想把手機畫面投影到 PC 上,不知道你都是怎麼做的?

android 上不乏各式各樣的連線用 app,不論是要 $$ 或是不用,絕大部分的連線軟體幾乎都要求手機要先 root 過,但...筆者真的不想 root 手機,怎辦?

總不能因為這樣,老闆說要看 app 開發成果,你只提供靜態 powerpoint 畫面充場面吧,尋尋覓覓了粉久,終於皇天不負苦心人,以下提供兩種方式,一種要花點小錢,一種不用一分一毫,青菜蘿蔔各有所好嘍

方法一:j5create Android手機同步控制器JUC600

官網:http://www.j5create.com/tw/our-products/android/juc600.html

文章標籤

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

應 K.Top 站長領航大大的提議,公開 Java code 的部分讓大家共襄盛舉...

package com.winton.gcm;

import android.content.BroadcastReceiver;
import android.content.Intent;
文章標籤

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

還記得我們之前介紹過 app 動態註冊 GCM Receiver 的方式嗎?那時候 K.Top 的站長大大還有留言問說如果 app 結束如何不漏接 GCM 訊息,當時是討論到靜態註冊、Service 等等的方式...其實筆者當時也是懵懵懂懂的,畢竟接觸 Android 也沒有粉久,對於 Android 內建的一些功能、機制並不是粉清楚的瞭解。

又經過一段時間的研究後,才瞭解其實靜態註冊過後,即便 app 在背景或是甚至 app 沒有啟動,device 仍然能收到  GCM 發送過來的訊息,主要是因為 AndroidManifest.xml 已經向作業系統「登記」要監聽(receiver)該訊息了,只是收到該訊息後該如何處理,就是由各 app 決定了,因此不需要再寫個 Service 這麼麻煩。

不過以當時接收訊息後是寫了一段 java code 再銜接到 FMX 的 OnReceive,可是如果 app 並非開啟中,這樣寫不就嗝屁了(Instance 並不存在)?

所以必須修改 java code 的寫法,原理就不在此贅述了。趕搭目前流行用語,文章下半段會附上「懶人包」,讓你不知道、不會 GCM,也可以整合自己的 app 在 3 秒鐘之內接收到 GCM 的訊息,只要你事先準備好兩樣東西

1.SenderID

文章標籤

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

ShowMessage、MessageDlg 甚至是 Form.ShowModal 的問題,相信粉多人都遇到甚至討論過了,官網這個部分也是討論的沸沸揚揚,不過始終沒有提出很好的具體解決作法

ShowMessage、MessageDlg 主要的問題,就是在對話框出現時,若使用者的點選動作並非在對話框的範圍內,輕則對話框關閉但不知道使用者點選啥(Y/N),重則整個 app crash,不同的機器上則會有不同的結果,無法事先預期狀況會是哪種。

http://delphi.ktop.com.tw/board.php?cid=30&fid=1501&tid=105589

ShowModal 的狀況也是半斤八兩,一方面官方不建議在 mobile 上使用多個 form(耗資源),希望大家用 frame 或是其他方式替代,另外一方面官網上仍是有公布替代方案,url 如下

docwiki.embarcadero.com/RADStudio/XE5/en/ShowModal_Dialogs_in_FireMonkey_Mobile_Apps

文章標籤

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

之前的文章中,已經分享過如何呼叫 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) 人氣()