#SuperMap iMobile for Android许可配置介绍
###本文介绍SuperMap移动端产品的使用前的许可配置,目前我们产品提供了两种类型的许可,试用许可和正式许可。试用许可只需邮箱即可申请,使用期限为三个月。正式许可的购买需与商务对接,购买方式比较灵活可以按使用时间,按许可数量(可绑定设备也可不绑定设备)购买,当然也有为土豪准备的买断方式。
一. 试用许可配置
1.用邮箱进行在线申请SuperMap iMobile for Android产品试用许可,根据页面提示填写信息。注:一个邮箱允许申请一次。
2.提交申请后,登录邮箱将附件"SuperMap iMobile Trial.slm"许可文件保存下来,该许可文件在Android,IOS平台通用,且不绑定设备。将该许可文件放在设备的目录"/supermap/license/"下。注:该目录也可以自定义。
3.安卓程序入口处(onCreate函数中)进行设置许可存放目录以及初始化设置。代码如下:
//获取设备存储根目录
String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
//设置许可存放目录
com.supermap.data.Environment.setLicensePath(rootPath + "/supermap/license/");
//初始化设置
com.supermap.data.Environment.initialization(MainActivity.this);
setContentView(R.layout.activity_main);
到此SuperMap iMobile产品试用许可的配置完成。
二. 正式许可配置
正式许可配置分为两种方式:离线许可配置(即绑定设备)和在线激活许可(未绑定设备)。
1.离线许可配置
- 通过获取设备识别码应用得到设备的硬件识别码或者通过Evironment 类的接口获取目标设备的硬件识别码。
com.supermap.data.Environment.getDeviceID();
- 用获得的硬件识别码通过销售渠道获取产品的正式许可激活文件。
- 用销售提供的正式许可文件,进行许可设置初始化。与步骤"一.3"一致。
2.在线激活许可
- 在应用程序初始化的代码中通过Environment类显式设置许可文件存放的路径。
//设置许可存放目录
com.supermap.data.Environment.setLicensePath(rootPath + "/supermap/license/");
- 设置许可激活回调,传入用户序列号和需要申请许可的模块列表,在线激活设备,需开启wifi连接。注:用户序列号和模块列表是销售提供。
- 设备激活成功后,会在目录"/supermap/license/"下生成正式许可文件,重启程序即可。附:在线激活许可示例代码如下
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// 设置存放许可文件的路径
String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
com.supermap.data.Environment.setLicensePath(rootPath + "/supermap/license/");
com.supermap.data.Environment.initialization(this);
// 设置申请许可的模块
ArrayList modules = new ArrayList();
modules.add(Module.Core_Runtime);
// 设置许可激活回调
LicenseManager.getInstance().setActivateCallback(new LicenseActivationCallback()
{
@Override
public void activateSuccess(LicenseStatus newLicenseStatus)
{
Toast.makeText(context, "许可激活成功", Toast.LENGTH_LONG).show();
}
@Override
public void activateFailed(String errorMsg)
{
Toast.makeText(context, "许可激活失败", Toast.LENGTH_LONG).show();
}
});
// 在线激活设备,传入用户序列号和需要申请的模块列表
LicenseManager.getInstance().activateDevice("用户序列号", modules);
setContentView(R.layout.activity_main);
}