version:1.0.6
bugfixes: update:切换到联想csdk,增加检查更新页面,增加密码登录
This commit is contained in:
137
app/src/main/java/com/hainaos/vc/utils/LenovoCsdkUtil.java
Normal file
137
app/src/main/java/com/hainaos/vc/utils/LenovoCsdkUtil.java
Normal file
@@ -0,0 +1,137 @@
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user