添加 ALC Library 从属项目
项目顶端 build.gradle 文件中,注册 ONE store maven 地址。
Android Studio (version: bumblebee) 中添加 settings.gradle
hljs.highlightAll();
Copy
...
buildscript {
repositories {
...
maven { url 'https://repo.onestore.net/repository/onestore-sdk-public' }
}
}
...
下面应用软件的 build.gradle 文件中,添加 ONE store ALC Library从属项目
hljs.highlightAll();
Copy
...
dependencies {
def onestore_sdk_version = "2.0.0"
implementation "com.onestorecorp.sdk:sdk-licensing:$onestore_sdk_version"
}
...
AndroidManifest.xml中添加queries
以下两种情况,请参考ONE store 公告进行设置。
Android 11 以上 (Target SDK 30 以上) ,请添加 queries。
hljs.highlightAll();
Copy
< manifest xmlns : android = "http://schemas.android.com/apk/res/android"
package = "com.dev.sample" >
< queries >
< intent >
< action android : name = "com.onestore.extern.licensing.LicensingService.ACTION" />
< intent >
< intent >
< action android : name = "android.intent.action.VIEW" />
< data android : scheme = "onestore" />
</ intent >
</ queries >
...
为ONE store Login添加configuration
项目顶端build.gradle 文件中注册 maven 地址
添加ALC Library从属项目时,流程同上。
hljs.highlightAll();
Copy
...
buildscript {
repositories {
...
maven { url 'https://repo.onestore.net/repository/onestore-sdk-public' }
}
}
...
下面应用软件的 build.gradle 文件中,添加 添加 ONE store configuration Library从属项目。
hljs.highlightAll();
Copy
...
dependencies {
def onestore_configuration_version = "1.0.0"
implementation "com.onestorecorp.sdk:sdk-configuration-kr:$onestore_configuration_version"
}
...
AppLicenseChecker 初始化
使用Application License Checke 要求用户的购买许可证,需生成AppLicenseChecker的 instance。
必须通过开发者中心颁发的许可证密钥来验证许可证。 此外,是否拥有有效许可证的结果是通过 LicenseCheckerListener 传递的,初始化时需创建Listener。
保存许可证密钥
为了安全起见, 建议通过服务器接收许可证密钥并使用,而不是保存在应用程序内代码。
Kotlin Java
Copy override fun onCreate(savedInstanceState : Bundle ? ) {
super . onCreate (savedInstanceState)
...
val appLicenseChecker = AppLicenseChecker.get(this@MainActivity, getString(R.string.publick_key, new AppLicenseListener())
}
...
inner class AppLicenseListener : LicenseCheckerListener {
override fun granted (license: String , signature: String) {}
override fun denied () {}
override fun error (code: Int , message: String) {}
}
Copy @ Override
protected void onCreate( Bundle savedInstanceState) {
super . onCreate (savedInstanceState);
...
appLicenseChecker = AppLicenseChecker.get(MainActivity.this, getString(R.string.publick_key, new AppLicenseListener());
}
...
private class AppLicenseListener implements LicenseCheckerListener {
@ Override
public void granted ( String license , String signature) {}
@ Override
public void denied () {}
@ Override
public void error ( int code , String message) {}
}
Callback 注册
AppLicenseChecker 初始化时,必须注册 LicenseCheckerListener
LicenseCheckeerListener 是为确认许可验证而提供的接口。许可验证结果调用 LicenseCheckeerListener 方法之一。
granted()、denied() 、error()三种方法,可进行简单的结果处理。 error() 类型传递错误代码和消息。 有关错误代码,请参考下面的响应代码。
Kotlin Java
Copy class AppLicenseListener : LicenseCheckerListener {
override fun granted (license: String , signature: String) {
// 许可证验证成功
}
override fun denied () {
// 许可证验证失败
}
override fun error (code: Int , message: String) {
// 许可证验证出错
}
}
Copy class AppLicenseListener implements LicenseCheckerListener {
@ Override
public void granted ( String license , String signature) {
// 许可证验证成功
}
@ Override
public void denied () {
// 许可证验证失败
}
@ Override
public void error ( int code , String message) {
// 许可证验证出错
}
}
许可证验证请求
调用许可证验证时,通过与 ONE store 服务器的通信传递许可证。用户因网络故障或飞行模式等原因无法正常访问ONE store服务器时,一般采使用缓存策略,保证缓存License有效期内应用软件的正常运行。 如果不想使用缓存策略,可通过 strictQueryLicense API 不使用缓存的许可证。
QueryLicense API (Cached API) 调用
协同缓存策略操作。 一般情况下,通过ONE store服务器接收用户购买历史的License,但因网络故障或飞行模式等原因无法访问ONE store服务器时,使用本地缓存的License来保证有效期内的正常运行。
Kotlin Java
Copy appLicenseChecker . queryLicense ()
Copy appLicenseChecker . queryLicense ();
StrictQueryLicense API (Non-Cached API) 调用
不使用缓存的许可证。 如果在网络故障或飞行模式下使用该 API, 因为无法访问 ONE store 服务器,用户无法使用应用程序 。
Kotlin Java
Copy appLicenseChecker . strictQueryLicense ()
Copy appLicenseChecker . strictQueryLicense ();
断开连接
建议通过调用AppLicenseChecker的destroy函数,断开ONE store服务。
Kotlin Java
Copy override fun onDestroy() {
if ( null != appLicenseChecker) {
appLicenseChecker . destroy ()
}
super . onDestory ()
}
Copy @ Override
protected void onDestroy() {
if ( null != appLicenseChecker) {
appLicenseChecker . destroy ();
}
super . onDestory ();
}
响应代码
下表是从 ONE store ALC Library传递到应用程序的Error响应代码和消息。 使用Library的应用程序必须处理响应代码。
Last updated 3 months ago