138 lines
4.3 KiB
Java
138 lines
4.3 KiB
Java
package com.hainaos.vc.utils;
|
||
|
||
import android.annotation.SuppressLint;
|
||
import android.app.csdk.CSDKManager;
|
||
import android.content.Context;
|
||
import android.util.Log;
|
||
|
||
import com.hainaos.vc.BuildConfig;
|
||
import com.hainaos.vc.config.CommonConfig;
|
||
import com.tencent.mmkv.MMKV;
|
||
|
||
import java.io.File;
|
||
import java.util.ArrayList;
|
||
import java.util.HashSet;
|
||
import java.util.List;
|
||
import java.util.Set;
|
||
|
||
public class LenovoCsdkUtil {
|
||
private static final String TAG = "LenovoCsdkUtil";
|
||
|
||
@SuppressLint("StaticFieldLeak")
|
||
private static LenovoCsdkUtil sInstance;
|
||
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
|
||
private Context mContext;
|
||
private CSDKManager mCSDKManager;
|
||
|
||
|
||
private LenovoCsdkUtil(Context context) {
|
||
if (context == null) {
|
||
throw new RuntimeException("Context is NULL");
|
||
}
|
||
this.mContext = context;
|
||
try {
|
||
this.mCSDKManager = new CSDKManager(context);
|
||
} catch (Exception e) {
|
||
Log.e(TAG, "LenovoCsdkUtil: " + e.getMessage());
|
||
}
|
||
if (mCSDKManager.isLicenseKeyEnabled(BuildConfig.APPLICATION_ID)) {
|
||
Log.e(TAG, "LenovoCsdkUtil: devices activated");
|
||
} else {
|
||
Log.e(TAG, "LenovoCsdkUtil: devices not activated");
|
||
}
|
||
List<String> packages = mCSDKManager.getRuntimePermissionWhiteList();
|
||
if (!packages.contains(BuildConfig.APPLICATION_ID)) {
|
||
packages.add(BuildConfig.APPLICATION_ID);
|
||
}
|
||
mCSDKManager.addRuntimePermissionWhiteList(packages);
|
||
Log.e(TAG, "setDefaultSetting: getRuntimePermissionWhiteList = " + mCSDKManager.getRuntimePermissionWhiteList());
|
||
}
|
||
|
||
public static void init(Context context) {
|
||
if (sInstance == null) {
|
||
Log.e(TAG, "init: ");
|
||
sInstance = new LenovoCsdkUtil(context);
|
||
}
|
||
}
|
||
|
||
public static LenovoCsdkUtil getInstance() {
|
||
if (sInstance == null) {
|
||
throw new IllegalStateException("You must be init LenovoCsdkUtil first");
|
||
}
|
||
return sInstance;
|
||
}
|
||
|
||
/**
|
||
* int: 1 MAC
|
||
* int: 2 SN
|
||
* int: 3 Model
|
||
* int: 4 IMEI
|
||
*/
|
||
public String getDeviceMac() {
|
||
String mac = mCSDKManager.getDeviceInfo(1);
|
||
return mac;
|
||
}
|
||
|
||
public String getSerial() {
|
||
if (BuildConfig.DEBUG) {
|
||
return "T98005H1024GB32GB";
|
||
}
|
||
|
||
String sn = mCSDKManager.getDeviceInfo(2);
|
||
return sn;
|
||
}
|
||
|
||
public String getDeviceModel() {
|
||
String model = mCSDKManager.getDeviceInfo(3);
|
||
return model;
|
||
}
|
||
|
||
public String getDeviceIMEI() {
|
||
String imei = mCSDKManager.getDeviceInfo(4);
|
||
return imei;
|
||
}
|
||
|
||
public void setCustomLauncher(String launcherPackageName, String launcherActivity) {
|
||
Log.e(TAG, "setDefaultLauncher: " + launcherPackageName);
|
||
mCSDKManager.setCustomLauncher(launcherPackageName, launcherActivity);
|
||
}
|
||
|
||
public void addInstallPackageWhiteList(String pkg) {
|
||
List<String> pkgList = mCSDKManager.getInstallPackageWhiteList();
|
||
Set<String> pkgSet;
|
||
if (pkgList == null) {
|
||
pkgSet = new HashSet<>();
|
||
} else {
|
||
pkgSet = new HashSet<>(pkgList);
|
||
}
|
||
pkgSet.add(pkg);
|
||
// pkgSet.addAll(ApkUtils.aoleyunAPP);
|
||
Log.e(TAG, "addInstallPackageWhiteList: " + pkgSet);
|
||
mCSDKManager.addInstallPackageWhiteList(new ArrayList<>(pkgSet));
|
||
}
|
||
|
||
public void installPackage(String path) {
|
||
String pkg = ApkUtils.getPackageName(mContext, path);
|
||
addInstallPackageWhiteList(pkg);
|
||
Log.e(TAG, "installPackage: " + path);
|
||
mCSDKManager.setPersistValue("persist.sys.csdk.installpackage.verification", "true");
|
||
mCSDKManager.installPackage(path);
|
||
}
|
||
|
||
public void installPackage(File file) {
|
||
String path = file.getAbsolutePath();
|
||
String pkg = ApkUtils.getPackageName(mContext, path);
|
||
addInstallPackageWhiteList(pkg);
|
||
Log.e(TAG, "installPackage: " + path);
|
||
mCSDKManager.setPersistValue("persist.sys.csdk.installpackage.verification", "true");
|
||
mCSDKManager.installPackage(path);
|
||
}
|
||
|
||
public void killApplicationProcess(String packageName) {
|
||
Log.e(TAG, "killApplicationProcess: " + packageName);
|
||
mCSDKManager.killApplicationProcess(packageName);
|
||
}
|
||
|
||
|
||
}
|