自我更新?為什麼需要?如果上架 Google Play 後,這部分不是就交給 Google Play 的機制了嗎?是的,這部分沒錯,但是如果沒有要上架 Google Play 的話呢?為啥不上架 Google Play 可能有千萬個理由,包含「不想被 Google A 走 25 美金」、「公司內部使用,不需要上架」等等。這時候更新的機制,就必須要自己來處理了,總不會希望你的使用者,每次都要透過 USB 傳輸線才能更新 App 吧...這樣使用者體驗不太優喔...

 

在開始之前,我們先參照前人的分享

Android应用开发笔记(12):Android应用的自动升级、更新模块的实现

文章標籤

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

在開始比較複雜的應用前,還是先來盤小菜好了。話說好不容易寫出 app 給想玩玩看的人來用,沒想到馬上就被打槍,問說手機內存太小,可不可以將 App 選擇裝在 SD 卡上?

這是什麼意思?如果你有裝 Line 這個 App 的話,開啟「應用程式資訊」,你可以看到如下選項

「手機儲存」指的就是 external storage,常見的就是 microSD 卡,可是如果你用 XE5 寫出來的 App,安裝完成後打開應用程式資訊,卻會是這樣

文章標籤

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

快快樂樂系列著重在基礎與 UI 的部分,之後來寫寫比較實用的部分,所以就取名叫輕鬆實用系列好了,還是老樣子不知道要寫些啥,邊走邊寫好了

 

(一)App install between android internal storage / external storage

(二)App 自我更新機制

     (a)版號讀取與比對

文章標籤

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

嚴格來說,計算兩點間的距離,應該跟 Android 開發無關,因為這只是要用什麼方式來估算兩個經緯度間的距離而已,不過通常只有手機(或平版)上,才能比較精確的定位,所以就當成是一種開發 app 的應用好了,比如業務人在公司外面,如果有一個 app 可以即時算出所在地附近一定距離內有哪些客戶,對於臨時要做一些拜訪應該是有幫助的。

在還沒開始前,想說先把上一篇的部分做些補充,上次只有提到應用 Google web api 將經緯度轉換成地址,那如果是顛倒的需求,要將地址轉換成經緯度該怎麼做呢?其實也粉簡單,Google api  都已經有提供了,不過這部分一樣受到 2,500次/天 以及呼叫間隔不能太頻繁的限制,呼叫方式如下

http://maps.google.com/maps/api/geocode/json?&sensor=true&language=zh-TW&address=台北市復興北路325號

於瀏覽器執行的話,可以得到一個 json 格式的回傳值,其中下圖標示紅框的部分,就是該地址轉換後的經緯度

這時候可以透過 Delphi 提供的 TJSONObject、TJsonArray、TJSONPair 等找出 json 中你需要的特定資料

文章標籤

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

Delphi XE 版本後,為了(也必須)貼近符合 mobile 的開發需要,所以陸續新增了以前在 Windows 環境所沒有的元件,Location Sensor 就是其中一個,mobile 環境中當然不只有這一個Sensor,其他包含 MotionSensor、OrientationSensor、LightSensor、EnvironmentalSensor、MechanicalSensor、ElectricalSensor、BiometricSensor、ScannerSensor 這幾個,不過元件盤中,只看的到 Location Sensor、MotionSensor 與 OrientationSensor

這次要介紹的是 Location Sensor,顧名思義,就是透過 Location Sensor 可以得到目前所在地的經緯度資料,用法很簡單,新增一個專案後,再新增兩個 TButton、數個 TLabel 與一個 TLocationSensor,如下圖

接下來,在取得經緯度的 Button(btnActiveSensor) 以及 LocationSensor1 的 LocationChanged 這個 event,分別撰寫如下程式碼

文章標籤

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

既然是讀取 Json 資料顯示在手機上,表示 Server 端可能是你自己或是別人提供的,你只是透過 RESTful 的方式來呼叫取得資料而已…如果還有印象的話,這次我們仍要沿用之前用過的一個資料,就是「臺北市旅服中心服務據點資訊」,網址為 http://data.taipei.gov.tw/opendata/apply/NewDataContent?oid=8AC76ABB-A384-4968-AD3C-9E8E9D238168,開啟該網頁,你如果細心一點的話,你會看到台北市政府資料開放平台其實提供兩種格式,第一種是 CSV,另外一個就是 Json 嚕

首先,Delphi XE5 有提供一個新的工具,不過顯然是忘記放在 Tools 的 Menu 裡面了,不過沒關係,你可以自己加入,透過 Menu->Tools->Config Tools...如下圖

然後依據下述畫面逐一鍵入相關資料...

文章標籤

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

不知不覺...ListBox 已經是這個系列第 10 篇 blog 了,現在才深深體會到寫書人的辛苦,厚厚一本書,不知道要燃燒掉多少青春歲月才能完成啊...本來想維持每週至少寫兩篇 blog 的,不過有時後實在...想偷懶,就像光輝的十月那週,想說跟國家一起放個假吧,所以該週掛零...呵呵

言歸正傳,ListBox 是幾乎每個非遊戲類的 app 都會用到的介面,首先我們先看一下官方的 demo 畫面

所以只要是 app 中需要做一些參數設定的介面,大多都會運用到 ListBox,當然其他資訊的呈現,也可以使用 ListBox,不過如同之前提過的,ListBox 跟 ListView 比起來,前者是比較耗資源的…那麼就讓我們一步一步說明,該做哪些設定才能讓 ListBox「長」的像那個樣子

接下來,以 Android 手機中都會有的一個設定音效畫面,來模擬看看如何做出類似的效果

文章標籤

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

ListView 與 ListBox 是兩個在 mobile 的世界中,主要用來顯示條列式資訊的元件,ListView 相對於 ListBox 來說,耗用的資源比較少,實際使用的狀況就反映在操作上,捲動的速度會比較流暢,缺點則是客製化的顯示沒有辦法那麼豐富(應該算追求顯示速度的代價吧..),這次先介紹的是 ListView

其實之前「讀取資料庫資料顯示在手機上」這部分的時候,已經用過 ListView 元件了,不過在這邊還是交代一些基本的屬性

首先先放一個 ListView 在 Form 上,並且將 Align 設定為 alClient,然後為了讓 ListView 有資料可以顯示,我們借用 TPrototypeBindSource 這個元件,這個元件的目的就如同其名,是在建立 Prototype 的程式時,為了看起來比較貼近真實的畫面,因此可以事先模擬資料庫的資料,建立在 TPrototypeBindSource 這個元件中,當然也可以透過 TPrototypeBindSource 本身提供的一些功能,就不用從頭到尾自己建立模擬資料(缺點就是只有英文的...),如果都完成的話,畫面應該像這樣

接下來在 PrototypeBindSource1 這個元件上用滑鼠左鍵點兩下,會開出如下視窗

文章標籤

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