Kotlin在Fragment要如何使用getActivity() 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 - 5月 18, 2018 當我們在Fragment要取得所依附的Activity時,在Java的寫法我們可以用getActivity() 但是在Kotlin卻找不到getActivity()了 其實只要把本來習慣的getActivity()改成: activity 就可以了 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 留言
ISO 27001 LA 主導稽核員 考照心得 - 1月 28, 2022 由於資安事件層出不窮,資訊安全日益受到重視,然而資訊安全的層面非常的廣,除了程式開發端、伺服器端,實體資訊工作環境也是需要被防護的一環。 ISO 27001是針對ISMS (Information Security Management System)制定的標準,也是列在行政院資通安全專業證照名單內的其中一張證照。 目前許多的大企業大多有在落實ISO 27001的合規環境,除了寫程式的人常常會被稽核之外,身為App開發人員的我,也想找個時間來了解ISO 27001的規範,就算目前還沒有要當稽核員,對於資訊安全的觀念也會更加全面。 報名 網路上查都有滿多這門課的報名管道,自行選擇喜歡的機構,以及打聽一下上課的地點,有些是在高級的飯店上課,環境、伙食就會都不錯。雖然通過拿到證照才是重點,但同樣都要花這筆大錢了,當然選間上課環境更舒服的地方也會比較開心一點 🤣。 費用 平日:50000、假日班:39900 這次我是自費去上課考照的,由於沒有公司的補助,所以是選擇費用比較便宜一些的假日班去上課。 上課之前 在正式上課之前,上課的機構會先寄一份課前資安調查的題目,要求先做一份對於資訊安全的了解程度的線上測驗。雖然是說分數不達標準就無法參加此課程,但其實題目也不難,大多都是靠想像的就可以選得到正確的選項。題目都是選擇題多選,而且不是我們傳統認為的全部選擇都答對才得分,而是有勾選到正確的選項都會有得到一些分數,所以只要勾選多一點的選項就可以通過了。 開始上課 分組 到了正式上課的第一天,首先會先分組,然後成員的自我介紹。而我們這組有人來自公部門,也有人本身就是PM,也有網管,也有工程師。 老師為了讓同隊的組員有更加深認識組員的機會,用輪流介紹另一位組員的方式進行,也就是A介紹B讓大家認識、B介紹C讓大家認識、C介紹A讓大家認識。 於是就有聽到其中有一組是相關稽核背景的,實力就相當堅強。 上課 課程主要圍繞在ISO 27001:2013的條文,其中包含了「本文」與「附錄A」。 如果你也是跟我一樣是第一次接觸這個領域,一定會有很多都不太懂的地方,上課就要更專心聽,老師會針對條文中的名詞定義,加上稽核實務的對應到的條文加以比對說明。 例如:你是稽核員,當你到了受稽方現場,看到程式碼是公司裡的任何人都可以自由存取,請問不符合哪些條款? 這個時候就要去翻條文,本文跟附錄A都可以找,發現與... 閱讀內容 »
Android如何實作強制App版本更新 - 3月 17, 2016 App上架了一段時間,透過Google Play Console常常會發現有不少的使用者仍然一直停留在舊版本不更新,雖然Android預設會自動更新用戶安裝的App版本,但也是會有使用者把自動更新的功能關閉,如此便會造成App加了新功能用戶無法體驗到或是當初沒考慮到的漏洞沒辦法補起來,基於此,強烈建議App在規劃的初期就要把「強制使用者更新App」的功能實作之後才上架。 實作的方式不難,大致上依照以下幾個流程即可達成: App開啟時檢查版本與Google Play上的版本是否一致 如果不一致就彈出對話框讓使用者執行前往該App的Google Play連結 限制使用者企圖操作不進行版本更新的行為 本例以Volley實作,所以在Callback的部份加上判斷版本是否相符的程式碼: StringRequest appVersion = BaseApi.appVersion(new ResponseListener() { @Override public void onError(VolleyError error) { super.onError(error); intoNextPage(); //有可能網路出錯但仍需讓使用者可以進入下一個頁面 } @Override public void onResponse(String str) { super.onResponse(str); Pattern pattern = Pattern.compile("\"softwareVersion\"\\W*([\\d\\.]+)"); Matcher matcher = pattern.matcher(str); if (matcher.find()) { if (!ValueUtility.getCurrentVersionName().equals(matcher.group(1))) { newVersionDialog.show(); } else { ... 閱讀內容 »
Android使用Callback做為傳遞資料/通知的方法 - 4月 30, 2016 在一個常見的實作上的情境:當使用者在執行某個行為之後,就執行某些行為。例如當API接收成功之後就跳轉到某個頁面,API接收失敗的時候顯示錯誤訊息,除了可以使用BroadcastReceiver,另外也可以使用Callback的方式達成。 以App常見的實作功能-接收API為例,實作的方式如下: 1.先建立一個Interface。 首先在interface裡面製作兩個function,一個是執行結束要執行的行為:loadComplete(),另一個是顯示訊息:showMsg(String msg) /** * Api執行完之後的callback */ public interface ApiCallback { void showMsg(String msg); //要顯示的訊息 void loadComplete(); //api執行完成 } 2.在觸發行為的class裡產生Callback實體。 舉例來說,如果是在API執行之後一定會有該API自己所屬的成功/失敗callback function(或稱method),也就是如果API接收成功了就執行某個function(以Volley來看是onResponse()),而失敗了就執行某個function(以Volley來看是onError())。 於是就可以在Volley的onResponse()加入interface裡的loadComplete(),而在onError()加入showMsg(String msg) public class MyApi{ public ApiCallback mCallback; public DailyNewsApi(Context context) { this.mContext = context; mCallback = (ApiCallback) mContext; } @Override public void onError(VolleyError error) { super.onError(error); mCallback.showMsg("登入失敗"); //傳送失敗訊息內容 ... 閱讀內容 »
留言
張貼留言