“全民创作“的时代,数字自媒体有较多的变现形式,让越来越多的人参加到内容创作中。然而,哪里有原创,哪里就有剽窃!如何避免盗版,爱护创作者的合法权益,就失去国家监管机构、创作平台和创作者统一的关注。
华为和中国版权核心单干推出了DCI版权服务,利用区块链和大数据技术,对数字作品版权进行爱护,提供DCI版权服务用户注册、DCI注销服务、DCI受权服务、DCI维权服务能力。DCI注销胜利的数字作品信息(包含DCI码)将保留在区块链中,保障所有的版权信息可信、可回溯。随时随地的为每位创作者提供安心的版权保护。

成果示例

创作者在提交数字作品DCI注销后,中国版权保护核心依照肯定程序将相应作品的著作权和与著作权无关的权力信息记录在案,并调配DCI码,通过华为自研区块链、大数据等技术加持,疾速高效的服务形式帮忙创作者解脱繁琐的版权确权流程实现权力认证,最终实现作品版权价值最大化。

开发筹备

1. 配置集成的SDK包

在利用的build.gradle文件中,dependencies内增加DCI版权服务的SDK依赖

// DCI Kit SDKiimplementation 'com.huawei.hms:dci:3.0.1.300'

2. 配置AndroidManifest.xml

关上main文件夹中的AndroidManifest.xml文件,能够依据场景和应用须要,配置读取和写入手机存储以及相机权限,在<application>前增加

<!-- 往sdcard中写入数据的权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!—网络权限 --><uses-permission android:name="android.permission.INTERNET" />

开发步骤

1. 初始化DCI SDK·

在Application的onCreate()办法中,对DCI SDK进行初始化操作。

@Overridepublic void onCreate() {    super.onCreate();    // Init DCI Kit    HwDciPublicClient.initApplication(this);}

2. 非DCI版权服务用户要先进行用户注册。

// 通过华为帐号服务获取OpenId和AccessTokenAccountAuthParams authParams = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM)                .setAccessToken()                .setProfile()                .createParams();AccountAuthService service = AccountAuthManager.getService(activity, authParams);Task<AuthAccount> mTask = service.silentSignIn();mTask.addOnSuccessListener(new OnSuccessListener<AuthAccount() {    @Override    public void onSuccess(AuthAccount authAccount) {        // 获取华为帐号 OpenId        String hmsOpenId = authAccount.getOpenId();        // 获取华为帐号 AccessToken        String hmsAccessToken= authAccount.getAccessToken();    }});// 设置SDK办法入参ParamsInfoEntity paramsInfoEntity = new ParamsInfoEntity();// 传入华为开发者联盟AppGallery Connect申请的AppIDparamsInfoEntity.setHmsAppId(hmsAppId);// 传入华为帐号的OpenIDparamsInfoEntity.setHmsOpenId(hmsOpenId);// hmsPushToken 为集成的华为push性能所提供的token,若不集成推送性能则不传此值paramsInfoEntity.setHmsPushToken(hmsPushToken);// 传入华为帐号的AccessTokenparamsInfoEntity.setHmsToken(hmsAccessToken);// 自定义返回code值,用于接管DCI版权服务用户注册后果int myRequestCode = 1;// 启动DCI版权服务用户注册界面        HwDciPublicClient.registerDciAccount(activity,paramsInfoEntity ,myRequestCode);                // DCI版权服务用户注册实现后在页面的onActivityResult中获取DCI版权服务用户注册后果。    @Override    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (requestCode != myRequestCode || resultCode != RESULT_OK || data == null) {            return;        }        int code = data.getIntExtra(HwDciConstant.DCI_REGISTER_RESULT_CODE, 0);        if (code == 200) {            // DCI版权服务用户注册胜利 获取返回的DCI UID            AccountInfoEntity accountInfoEntity = data.getParcelableExtra(HwDciConstant.DCI_ACCOUNT_INFO_KEY);            String dciUid = accountInfoEntity.getUserId();        } else {            // DCI版权服务用户注册失败,依据code解决失败的逻辑        }    }

3. 传入作品进行DCI注销

调用HwDciPublicClient的applyDciCode接口,传入作品相干信息进行数字作品进行DCI注销。

// Initializing the Rebuild EngineParamsInfoEntity paramsInfoEntity = new ParamsInfoEntity();paramsInfoEntity.setDciUid(dciUid);paramsInfoEntity.setHmsAppId(hmsAppId);paramsInfoEntity.setHmsOpenId(hmsOpenId);paramsInfoEntity.setHmsToken(hmsToken);// 获取数字作品本地保留的门路String imageFilePath = imageFile.getAbsolutePath();// 获取以后定位所在的城市名String local = "北京市";// 获取数字作品创作工夫,Unix工夫,这里以以后工夫为例long currentTime = System.currentTimeMillis();// 调用接口办法HwDciPublicClient.applyDciCode(paramsInfoEntity, imageFilePath,local,currentTime, new HwDciClientCallBack<String>() {    @Override    public void onSuccess(String workId) {        // 提交DCI注销胜利,本地保留workId,用于查问DCI注销后果入参。    }    @Override    public void onFail(int code, String msg) {        // 提交DCI注销失败。    }});

4. 查问DCI注销后果。

调用HwDciPublicClient的queryWorkDciInfo接口,依据返回的状态码判断DCI注销后果,如果注销胜利,获取作品调配的DCI码。

ParamsInfoEntity paramsInfoEntity = new ParamsInfoEntity();paramsInfoEntity.setDciUid(dciUid);paramsInfoEntity.setHmsAppId(hmsAppId);paramsInfoEntity.setHmsOpenId(hmsOpenId);paramsInfoEntity.setHmsToken(hmsToken);paramsInfoEntity.setWorkId(workId);HwDciPublicClient.queryWorkDciInfo(paramsInfoEntity, new HwDciClientCallBack<WorkDciInfoEntity>() {    @Override    public void onSuccess(WorkDciInfoEntity result) {        if (result == null) {            return;        }        // 依据返回的状态码判断DCI注销后果,0代表解决中,1代表胜利,2代表失败        if (result.getRegistrationStatus() == 1) {            // 查问胜利,DCI注销胜利,获取DCI码。            mDciCode = result.getDciCode();        }else if (result.getRegistrationStatus() == 0) {            // 查问胜利,DCI注销正在解决中。        }else {            // 查问胜利,DCI注销失败。获取DCI注销失败起因。            String message = result.getMessage()        }    }    @Override    public void onFail(int code, String msg) {        // 查问失败。    }});

5. 为数字作品增加DCI标。

调用HwDciPublicClient的addDciWatermark接口,为DCI注销胜利的作品增加DCI标,作为数字作品版权确权标识

// 传入须要增加DCI标的数字作品的本地门路String imageFilePath = imageFile.getAbsolutePath();HwDciPublicClient.addDciWatermark(imageFilePath, new HwDciClientCallBack<String>() {    @Override    public void onSuccess(String imageBase64String) {        // DCI标记增加胜利,返回图片base64字符串    }    @Override    public void onFail(int code, String msg) {        // 增加失败    }});

理解更多相干内容

拜访华为DCI版权服务服务官网

获取华为DCI版权服务开发领导文档

华为DCI版权服务开源仓库地址:GitHub、Gitee

华为HMS Core官方论坛

解决集成问题请到Stack Overflow

点击右上角头像右方的关注,第一工夫理解HMS Core最新技术~

本文由博客一文多发平台 OpenWrite 公布!