VIVEPORT 安卓授权
Viveport提供基于网络的许可服务,让您的应用程序在运行时获取当前用户的许可状态。您的应用程序可以确定当前用户是否获得使用您的应用程序的许可。
要求
1.
Viveport客户端安装在用户设备上,并且设备运行的是安卓5.0(API级别21)或更高版本。
2.
用户需要有一个HTC帐户并登录。
3.
用户的设备可以通过网络访问数字版权管理服务器。
许可概述
Viveport安卓应用程序许可证包含数字版权管理函数库,数字版权管理服务以及数字版权管理服务器。您只需要将您只需要将数字版权管理函数库添加到应用程序中。 数字版权管理函数库是一个安卓 aar函数库,函数库将处理与数字版权管理服务的所有验证和通信,数字版权管理服务将负责沟通数字版权管理服务器所有的动作。
数字版权管理函数库绑定数字版权管理服务以从数字版权管理服务器获取当前用户的签名许可证数据,然后检查应用程序的许可证签名和有效性。当没有网络连接时,数字版权管理函数库具有许可证缓存。 数字版权管理服务由Viveport客户端提供,用户必须安装Viveport客户端才能从数字版权管理服务器获取许可证。
为了确保许可证数据的安全性,当您将应用程序添加到Viveport开发人员控制台(https://developer.viveport.com/console)时,管理服务器会为应用程序生成RSA密钥。 RSA密钥仅在您和数字版权管理服务器之间共享。服务器在内部保留私钥,并向您公开公钥。您必须将公钥嵌入到应用程序源代码中。 数字版权管理服务器使用私钥为应用程序签署许可证数据。当应用程序接收到签名的许可证数据时,数字版权管理函数库使用嵌入式公用密钥来验证许可证数据。
测试ID和测试密钥
您可以使用测试ID和测试密钥来验证数字版权管理函数库集成。如果您正确地集成了数字版权管理函数库,所有用户都可以使用您的应用程序。
ViveportID = "bd67b286-aafc-449d-8896-bb7e9b351876"
ViveportKey
= "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFypCg0OHfBC+VZLSWPbNSgDo9qg/yQORDwGy1rKIboMj3IXn4Zy6h6bgn8k
iMY7VI0lPwIj9lijT3ZxkzuTsI5GsK//Y1bqeTol4OUFR+47gj+TUuekAS2WMtglKox+/7mO6CA1gV+jZrAKo6YSVmPd+oFsgisRcqEgNh5MIURQIDAQAB"
向您的应用程序添加许可
以下步骤使用安卓 Studio。您可以参考数字版权管理样品源代码并将Snippets复制到源代码
1.
将您的应用程序添加到Viveport开发人员控制台(https://developer.viveport.com/console),并获得您的应用程序的ViveportID和ViveportKey密钥。
2.
将“drmsample \ libs \ drmlib.aar”复制到“your_project \
libs \”
3.
将drmlib依赖项添加到“build.gradle”文件
repositories { flatDir {dirs 'libs'} }
dependencies
{ compile(name:
'drmlib', ext: 'aar') }
4.
将drmlib类导入到您的java文件
import com.htc.store.licensing.LicenseChecker;
import
com.htc.store.licensing.LicenseCheckerCallback;
5.
执行您的LicenseCheckerCallback类。请注意,LicenseCheckerCallback方法将从后台线程调用。您可以在UI线程中创建一个处理程序,并在必要时将您的调用方法发布到处理程序。
LicenseCheckerCallback有3个调用方法。
allow(): 用户被许可使用您的应用程序。
deny(int
denyCode): 您可以检查denyCode并执行相应的操作。
DENY_NOT_LICENSED: 用户未获得使用您的应用程序的许可。
DENY_RETRY: 您的应用程序无法从数字版权管理服务获取许可证响应数据。这可能是由于网络或服务器的问题,所以我们应该给用户一次机会重试。
DENY_NOT_SIGN_IN: 用户未添加或登录HTC帐户。
DENY_NO_SERVICE: 无法绑定数字版权管理服务。未安装Viveport客户端
applicationError(int
errorCode): 应用程序代码中的错误。请检查错误代码并修复错误。
ERROR_INVALID_PUBLIC_KEY: 公开金钥无效。
ERROR_INVALID_APP_ID: 在Viveport中找不到此应用程序。
范例:
private
class MyLicenseCheckerCallback
implements
LicenseCheckerCallback {
public void allow() {
log("allow"); // Should allow user’s access.
}
public void deny(int denyCode)
{
switch (denyCode)
{
case DENY_NOT_LICENSED:
log("not
licensed");
break;
case DENY_RETRY:
log("please
retry");
break;
case DENY_NOT_SIGN_IN:
log("please
sign in");
break;
case DENY_NO_SERVICE:
log("please
install Viveport");
break;
}
}
public void
applicationError(int errorCode) {
// Please examine the error code and fix the error.
log("application_error:
" +
errorCode);
}
}
6.
在您的MainActivity类中声明ViveportID,ViveportKey,LicenseChecker和您的LicenseCheckerCallback对象。
private static final String sViveportID = "your-viveport-id";
private static final String sViveportKey = "your-viveport-key";
private LicenseCheckerCallback
mLicenseCheckerCallback = new MyLicenseCheckerCallback();
private LicenseChecker mChecker;
7. 在MainActivity.onCreate()中创建LicenseChecker对象
mChecker = new LicenseChecker(
this, sViveportID , sViveportKey);
8. 在MainActivity.onDestroy()中销毁LicenseChecker对象
mChecker.onDestroy();
9. 现在您可以检查许可证是否有效。
mChecker.checkAccess(mLicenseCheckerCallback);
10. 对代码进行模糊处理使得反组译和删除许可证检查变得更加困难。您可以使用ProGuard或类似的程序来完成这项工作。
向Unity项目添加许可
1.
将您的应用程序添加到Viveport开发人员控制台(https://developer.viveport.com/console),并获得您的应用程序的ViveportID和ViveportKey密钥。
2.
打开您的Unity项目并导入“Viveport_Android_DRM.unitypackage”。(从Unity编辑器>资产>导入软件包>自定义软件包)
3.
请参阅“Assets \
Viveport_Android_DRM \ MyLicenseChecker.cs”以实现您的许可脚本
4.
将您的ViveportID和ViveportKey嵌入您的许可脚本。
(与Unity 5.3+兼容)
向Unreal项目添加许可
1.
将您的应用程序添加到Viveport开发人员控制台(https://developer.viveport.com/console),并获得您的应用程序的ViveportID和ViveportKey密钥。
2.
将“AndroidDRM_unreal
\ Plugins \ ViveportLicenseChecker \”复制到您的Unreal项目“Plugins \”目录
3.
关闭并重新打开Unreal编辑器。
4.
请参阅“AndroidDRM_unreal
\ MyLicenseCheckerExample \ *”以实现您的许可cpp代码。
(与Unreal
4.13+兼容)
支持
如果您有问题,请访问开发人员社区(https://developer.viveport.com)。