2016年3月21日 星期一

取得所在(預設)地點的貨幣

這篇還是還是匯率相關XDDD

在實作匯率App時,我想讓App預先載入使用者最常使用及查詢的貨幣,讓使用者有比較好的UX,只是到底怎麼定義使用者最常使用及查詢的貨幣,讓我有點傷透腦筋。


使用者最常使用及查詢的貨幣
一開始,是有想說透過GPS取得使用者所在位置,然後取得所在位置的幣別,作為最常使用的貨幣,想說你都在當地應該會用那邊的貨幣吧?

只是如此一來在OnCreate要作的是就會很繁重,要取得位置及幣別,還要取得即時匯率,應該會被ANR(Application Not Responding),而且我覺的匯率換算跟App跟使用者要位置的權限也頗奇怪。

最後則是採用了所在(預設)位置,就是一開始在設定手機時,所選擇的國家(位置),然後取出它的幣別,當作我的預設幣別。

另外一方面,最常查詢的貨幣也是頗令人頭痛的東西。

原本是想說,有沒有辦法在得知預設幣別後,去找出這個國家最常兌換的貨幣,例如台灣最常查詢日幣、美金、人民幣…,只是servey不到可用的API,所以目前只好先寫死固定的貨幣,之後再來修正吧QAQ


取得所在(預設)地點的貨幣
在這邊使用了兩個類別,分別是LocaleCurrency

Locale represents a language/country/variant combination. Locales are used to alter the presentation of information such as numbers or dates to suit the conventions in the region they describe.

語言環境(Locale) 代表一個語言/國家/variant 組合。這三個參數足夠的資訊來描述該地區的語言文化及行為。不過說是這說,我有點搞不清楚最後的variant 是在描述哪一部分,在Android官網中是給了這樣個範例


1.取出預設位置
我們可以透過

2.取得該位置所對應貨幣代碼
在Currency中提供了一個function,可藉由傳入Locale參數取得到該Locale國家所對應的貨幣,一旦得知該貨幣,就可取出得該貨幣的代碼



沒有留言:

張貼留言