123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- package com.guangzhou.haochuan.jxtv.util;
- import android.content.Context;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import tv.icntv.ottlogin.loginSDK;
- /**
- * Created by Lyn on 2018/2/23.
- */
- public class OttLoginUtil {
- private static OttLoginUtil instance;
- private boolean hasLogin =false; // 如果验证通过,则代表登陆,否则代表未登陆
- private String deviceID = ""; // 设备id
- private String templateID = ""; //模板id
- private String platformID = ""; //平台id
- private String mac = ""; //设备MAC
- public static OttLoginUtil getInstance(){
- if(instance == null){
- instance = new OttLoginUtil();
- }
- return instance;
- }
- public void updateVersion(final OnUpdateListener listener){
- if(!hasLogin){
- return;
- }
- try{
- loginSDK.getInstance().upgradeChecking(new loginSDK.Check() {
- @Override
- public void OnSuccess() {
- loginSDK.getInstance().upgrade();
- listener.OnSuccess();
- }
- @Override
- public void OnFailure() {
- listener.onFail();
- }
- });
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- public void init(Context context,OnLoginListener loginListener){
- try{
- if(loginSDK.getInstance().sdkInit(getOttIniFilePath(context), loginSDK.TYPE_COMMON, context)){
- //Toast.makeText(this, "认证成功", Toast.LENGTH_SHORT).show();
- }else{
- //Log.d("loginSdk","认证返回" + loginRet + ": " + msg); // 可展示认证返回码及其对应描述信息
- }
- //开始认证
- String loginRet = loginSDK.getInstance().deviceLogin();
- if (loginRet.equals("111")) {
- hasLogin = true;
- // 认证成功,可获取认证信息
- StringBuffer tf = new StringBuffer();// 获取设备 ID
- loginSDK.getInstance().getDeviceID(tf); //设备ID
- deviceID = tf.toString();
- LocalStore.getInstance().storeUserId(context,deviceID);
- loginSDK.getInstance().getTemplateID(tf);
- templateID = tf.toString();
- loginSDK.getInstance().getPlatformID(tf);
- platformID = tf.toString();
- loginSDK.getInstance().getValueByKey("EXT_GET_LOGIN_MAC",tf);
- mac = tf.toString();
- loginListener.OnSuccess();
- updateVersion(new OnUpdateListener() {
- @Override
- public void OnSuccess() {
- }
- @Override
- public void onFail() {
- }
- });
- } else {
- // 认证失败,上报错误日志,提示框展示
- loginSDK.getInstance().logUpload(); // 失败后上报认证错误日志,用于远程问题定位 String msg = loginSDK.getInstance().loginStatusToMsg(loginRet);
- String msg = loginSDK.getInstance().loginStatusToMsg(loginRet);
- CrashHandler.getInstance().saveCrashInfoToWeb("认证失败:" + msg);
- loginListener.onFail(msg);
- //Log.d("loginSdk","认证返回" + loginRet + ": " + msg); // 可展示认证返回码及其对应描述信息
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- public boolean hasLogin(){return hasLogin;}
- public String getDeviceId(){return this.deviceID;}
- public String getTemplateID(){return this.templateID;}
- public String getPlatformID(){return this.platformID;}
- public String getMac(){return this.mac;}
- public String getLoginStateMsg(){
- return loginSDK.getInstance().getLoginStatus();
- }
- //获取ini文档路径
- private String getOttIniFilePath(Context context){
- String fileFolder = context.getFilesDir().toString()+"/ini";
- String filePath = fileFolder + "/DeviceInfo.ini";
- try{
- File folder = new File(fileFolder);
- if(!folder.exists()){
- folder.mkdirs();
- }
- File deviceFile = new File(filePath);
- if(!deviceFile.exists()){
- //Toast.makeText(this,"文件未存在,创建文件",Toast.LENGTH_LONG).show();
- deviceFile.createNewFile();
- InputStream is = context.getAssets().open("DeviceInfo.ini");
- FileOutputStream fos = new FileOutputStream(deviceFile);
- byte[] buffer = new byte[1024];
- int byteCount=0;
- while((byteCount=is.read(buffer))!=-1) {//循环从输入流读取 buffer字节
- fos.write(buffer, 0, byteCount);//将读取的输入流写入到输出流
- }
- fos.flush();//刷新缓冲区
- is.close();
- fos.close();
- }else {
- //Toast.makeText(this,"文件已存在",Toast.LENGTH_SHORT).show();
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- return context.getFilesDir().toString();
- }
- public interface OnUpdateListener{
- public void OnSuccess();
- public void onFail();
- }
- public interface OnLoginListener{
- public void OnSuccess();
- public void onFail(String msg);
- }
- }
|