3 回答

TA貢獻1877條經驗 獲得超6個贊
當前,大多數開發(fā)人員使用以下3種技術之一來完成此任務。
可以輕松規(guī)避第一種方法,第一次運行應用程序時,將日期/時間保存到文件,數據庫或共享首選項中,并且每次運行該應用程序后都要檢查試用期是否已結束。這很容易規(guī)避,因為卸載和重新安裝將使用戶擁有另一個試用期。
第二種方法更難規(guī)避,但仍然可以規(guī)避。使用硬編碼的定時炸彈?;旧希ㄟ^這種方法,您將很難確定試用的結束日期,并且所有下載和使用該應用的用戶都將無法同時使用該應用。我之所以使用這種方法,是因為它易于實現(xiàn),而且在大多數情況下,我只是不想經歷第三種技術的麻煩。用戶可以通過手動更改手機上的日期來規(guī)避此問題,但是大多數用戶不會遇到麻煩。
第三種技術是我聽說過的真正能夠完成您想做的事情的唯一方法。您將必須設置服務器,然后無論何時啟動應用程序,您的應用程序都會將電話的唯一標識符發(fā)送到服務器。如果服務器沒有該電話ID的條目,則它將創(chuàng)建一個新的ID并記錄時間。如果服務器確實具有電話ID條目,則它將進行簡單檢查以查看試用期是否已到期。然后,它將試用期滿檢查的結果傳達回您的應用程序。這種方法不應該被規(guī)避,但是確實需要設置一個Web服務器等。
在onCreate中進行這些檢查始終是一個好習慣。如果到期已結束,則彈出帶有市場鏈接的AlertDialog,該鏈接指向應用程序的完整版本。僅包括一個“確定”按鈕,并且一旦用戶單擊“確定”,就調用“ finish()”以結束活動。

TA貢獻1804條經驗 獲得超3個贊
我已經開發(fā)了一個Android試用版SDK,您可以將其輕松放入Android Studio項目中,它將為您處理所有服務器端管理(包括離線寬限期)。
要使用它,只需
將庫添加到主模塊的 build.gradle
dependencies {
compile 'io.trialy.library:trialy:1.0.2'
}
用您的主要活動的onCreate()方法初始化庫
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Initialize the library and check the current trial status on every launch
Trialy mTrialy = new Trialy(mContext, "YOUR_TRIALY_APP_KEY");
mTrialy.checkTrial(TRIALY_SKU, mTrialyCallback);
}
添加一個回調處理程序:
private TrialyCallback mTrialyCallback = new TrialyCallback() {
@Override
public void onResult(int status, long timeRemaining, String sku) {
switch (status){
case STATUS_TRIAL_JUST_STARTED:
//The trial has just started - enable the premium features for the user
break;
case STATUS_TRIAL_RUNNING:
//The trial is currently running - enable the premium features for the user
break;
case STATUS_TRIAL_JUST_ENDED:
//The trial has just ended - block access to the premium features
break;
case STATUS_TRIAL_NOT_YET_STARTED:
//The user hasn't requested a trial yet - no need to do anything
break;
case STATUS_TRIAL_OVER:
//The trial is over
break;
}
Log.i("TRIALY", "Trialy response: " + Trialy.getStatusMessage(status));
}
};
要開始試用,請致電mTrialy.startTrial("YOUR_TRIAL_SKU", mTrialyCallback); 您的應用密鑰,然后在Trialy開發(fā)人員儀表板中找到試用SKU 。
- 3 回答
- 0 關注
- 630 瀏覽
添加回答
舉報