当前位置: 首页 > article >正文

SuperMap iMobile for Android许可介绍

作者:dongyx

      使用SuperMap iMobile产品需要SuperMap的授权,即获得许可。目前,针对不同的用户和不同的使用场景,SuperMap iMobile提供三种许可方式,分别为试用许可、正式许可、教育许可。
一、试用许可
      想必有很多同学在使用初期都是使用的试用许可,那么试用许可具有哪些特点呢?
1.许可免费,可以直接使用邮箱申请,但是试用期为3个月;并且功能无限制
2.地图上含有超图水印;
3.试用许可不需要绑定设备,一个许可文件可以用在多个设备上。
      使用方法:
      将申请后的*.slm许可文件拷贝至设备中,然后调用

String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
Environment.setLicensePath(rootPath + "/SuperMap/license/") 

二、正式许可
      在正式项目的开发中很多客户都是需要购买正式许可的,但是并不知道需要购买哪种正式许可,下面小编带大家了解iMobile产品的正式许可使用场景以及使用方法。
1.文件型正式许可:该许可主要适用于设备不能联网的情况下使用,一个许可文件对应一个设备。
使用方法:
      通过 Evironment 类的接口获取目标设备的硬件识别码(也可以通过定制应用直接获得设备的硬件识别码)

Environment.getDeviceID();

      用获得的硬件识别码通过销售渠道获取许可激活文件,将文件拷贝至设备中,然后调用以下代码:

String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
Environment.setLicensePath(rootPath + "/SuperMap/license/") 

2.在线激活许可
      该许可在第一次激活时设备需要联网,激活后可一直使用。并且该许可是可归还的,在使用后都可以进行归还,然后其他设备进行激活使用
使用方法:
      通过查询序列号获取功能模块进行激活:

ArrayList<Module> modules = new ArrayList<Module>();private void active() {//用户序列号String userSerialID = "用户序列号";		RecycleLicenseManager manager = RecycleLicenseManager.getInstance(getApplicationContext());//设置许可激活回调manager.setActivateCallback(new RecycleLicenseCallback() {			@Overridepublic void upgradeFailed(String errorInfo) {}@Overridepublic void success(LicenseStatus newLicStatus) {}@Overridepublic void recycleLicenseFailed(String errorInfo) {}@Overridepublic void bindPhoneNumberFailed(String errorInfo) {}@Overridepublic void activateFailed(String errorInfo) {}@Overridepublic void queryResult(ArrayList<Module> arrModules) {modules = arrModules;//在线激活设备,传入用户序列号和需要申请的模块列表manager.activateDevice(userSerialID, modules);}@Overridepublic void otherErrors(String errorInfo) {}});//设置许可类型(注意:先设置许可类型,再初始化环境)Environment.setLicenseType(LicenseType.UUID);Environment.initialization(getApplicationContext());//查询许可中包含的模块manager.query(userSerialID);//使用查询到的模块激活,需要在查询结束后调用激活方法,分两步执行,此处直接将其放置在查询回调中执行。
}

      了解序列号中有哪些许可模块,可以直接添加模块的方式配置许可:

private void active() {//用户序列号String userSerialID = "用户序列号";//设置申请许可的模块final ArrayList<Module> modules = new ArrayList<Module>();modules.add(Module.Core_Runtime);modules.add(Module.Navigation_Runtime);modules.add(Module.Realspace_Runtime);RecycleLicenseManager manager = RecycleLicenseManager.getInstance(getApplicationContext());//设置许可激活回调manager.setActivateCallback(new RecycleLicenseCallback() {@Overridepublic void upgradeFailed(String errorInfo) {}@Overridepublic void success(LicenseStatus newLicStatus) {}@Overridepublic void recycleLicenseFailed(String errorInfo) {}@Overridepublic void bindPhoneNumberFailed(String errorInfo) {}@Overridepublic void activateFailed(String errorInfo) {}@Overridepublic void queryResult(ArrayList<Module> arrModules) {}@Overridepublic void otherErrors(String errorInfo) {}});//设置许可类型(注意:先设置许可类型,再初始化环境)Environment.setLicenseType(LicenseType.UUID);Environment.initialization(getApplicationContext());//在线激活设备,传入用户序列号和需要申请的模块列表manager.activateDevice(userSerialID, modules);		
}

3.在线公有云许可
      在线公有云许可对接的是SuperMap Online账号,不需要在本地部署相关服务。使用在线公有云许可需要满足设备联网、拥有SuperMap Online账号并且账号中有iMobile许可。
使用方法:
      初始化公有云对象:

3.CloudLicenseManager manager = CloudLicenseManager.getInstance(this);
manager. setLoginCallback(new CloudLicenseManager.LicenseLoginCallback(){@Overridepublic void loginAccount(boolean issuccess) {}@Overridepublic void queryLicense(QueryFormalLicenseResponse queryFormalLicenseResponse) {}@Overridepublic void activeLicense(String returnid) {}@Overridepublic void recycleLicense(int days) {}@Overridepublic void otherError(String error) {}@Overridepublic void logoutAccount(boolean logout) {}
manager.login("username","password");

      查询许可,查询成功后在queryLicense回调中拿到许可ID licenseID用于下一步激活:

@Override
public void queryLicense(QueryFormalLicenseResponse queryFormalLicenseResponse) {if (queryFormalLicenseResponse!=null){int licenseCount =  queryFormalLicenseResponse.licenseCount;boolean formal = queryFormalLicenseResponse.formal;LicenseInfo[] licenseInfos = queryFormalLicenseResponse.licenses;licenseid = licenseInfos[0].id;}
}

激活许可

manager.applyFormal(licenseid);

4.教育版许可
      教育版许可顾名思义是给教育单位提供的许可,该许可需要部署一个许可服务器,在使用时只需要通过许可服务器的url地址激活就可以。具体使用方法如下:
1.初始化教育许可类 :

eduLicense = EduLicense.getInstance(this); 

2.设置教育许可监听:

eduLicense.setEduLicenseApplyListener(new EduLicense.EduLicenseApplyListener() {@Overridepublic void getApplySuccess(boolean isApplySuccess) {if (isApplySuccess){Log.i(TAG, "激活成功 ");}else {Log.i(TAG, "激活失败 ");}}});

3.设置许可服务网址 :

eduLicense.setUrl("URL");

4.激活许可 ;

eduLicense.applyLicense();

5.激活完成后,获取许可信息。

eduLicense.getLicenseInfos();

许可信息中包括:
许可激活信息,及激活成功或失败。
许可描述。
许可合同有效期。该有效期是许可服务上的许可合同到期时间。

http://www.lryc.cn/news/2419766.html

相关文章:

  • Phoenix 的 thick Client 和 thin Client
  • Actix-Web构建一个简单的HTTP服务器
  • 51单片机原理以及接口技术(四)--80C51的程序设计
  • greensock下载_GreenSock动画平台初学者指南
  • 手把手叫你做ToDoList
  • 解密:2012世界末日其实是个大骗局
  • 算法设计与分析——背诵知识点合集
  • 霍夫曼(Huffman)编码算法详解之C语言版
  • 强度理论介绍和惯性矩推导
  • 数据库性能监控策略:如何监控数据库性能
  • 基本概念:子域名和域
  • 【HTML基础】HTML基本语法
  • 【CSDN软件工程师能力认证学习精选】吐血整理!140 种 Python 标准库、第三方库和外部工具都有了
  • linux驱动开发扩展--字符设备注册详解
  • 多线程之线程间通讯
  • (4)pokeman_用图片对模型进行测试
  • 什么是TTL电平,什么是CMOS电平
  • “boost::get_property的用法示例“:使用Boost库的get_property方法可以方便地获取C++对象的属性值
  • sockaddr和sockaddr_in结构体、以及inet_ntoa()和inet_addr()函数的用法
  • rownum,row_number區別。 执行顺序
  • 最新BIOS设置中英文对照表
  • P2P原理与实践
  • erpc的设计和工作机制
  • MD5:介绍与应用
  • Win10 VC++6 无法启动此程序,因为计算机中丢失mfc42d.dll 需要提升
  • Vim的全面配置
  • 谈安全测试的重要性
  • Oracle 视图详解
  • 浅谈快速沃尔什变换(FWT)快速莫比乌斯变换(FMT)
  • Android 二级列表控件ExpandableListView 的简单使用