應用付費鑒權
在用戶使用付費應用時,校驗用戶是否已經成功購買此應用。
注意
必須在7.2.1版本以上的華為應用市場才可以使用AppGallery DRM Service SDK。
場景介紹
A公司開發(fā)了一款付費應用,用戶B購買了此應用。在用戶B打開此應用時,應用會校驗用戶B是否已經購買成功。如果購買成功,用戶B可以使用該應用,否則將提示用戶B購買此應用。
開發(fā)步驟
1.添加“版權保護id”和“版權保護公鑰”。
將使用入門中獲取的“版權保護id”和“版權保護公鑰”添加到應用啟動的主Activity的私有變量中。
//版權保護id
private static final String DRM_ID = "請在這里填寫版權保護id";
//版權保護公鑰
private static final String DRM_PUBLIC_KEY = "請在這里填寫版權保護公鑰";
2.創(chuàng)建鑒權回調類實例。
鑒權接口通過回調的方式得到鑒權結果判斷是否成功,回調方法onCheckSuccess()為鑒權成功,回調方法onCheckFailed()為鑒權失敗。
以下代碼示例創(chuàng)建了一個DrmCheckCallback實例,用于接收鑒權結果。
private class MyDrmCheckCallback implements DrmCheckCallback {
@Override
public void onCheckSuccess() {
//鑒權成功
…… ……
}
@Override
public void onCheckFailed(int errorCode) {
//鑒權失敗
//如果check接口入參showErrorDialog為true或缺省時,建議調用finish結束程序
//如果check接口入參showErrorDialog為false時才需要處理errorCode,請參考錯誤碼文檔
…… ……
}
}
3.調用check接口。
將AppGallery DRM Service SDK的主要鑒權方法check添加到應用程序啟動的主Activity的生命周期函數OnCreate的最開始位置,按接口說明傳入合法參數,Activity將會被AppGallery DRM Service SDK保護。Drm.check方法是異步方法,進入應用的邏輯應該在DrmCheckCallback返回結果后執(zhí)行。
應用在除了onCreate之外的其他方法中(例如onResume,onStart,onRestart等)也有進入應用的處理時,建議在這些地方增加判斷付費鑒權的狀態(tài),以避免未購買用戶也可使用應用。判斷方法可跟onCreate中保持一致,但需要注意驗證重復調用導致的異常。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 調用鑒權方法
Drm.check(this, this.getPackageName(), DRM_ID, DRM_PUBLIC_KEY,new MyDrmCheckCallback());
}