正在查看: Petal Maps v4.7.0.310001 应用的 VoiceKitSdk.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Petal Maps v4.7.0.310001 应用的 VoiceKitSdk.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.huawei.hiassistant.platform.base.northinterface;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import com.huawei.agconnect.apms.APMS;
import com.huawei.hiassistant.platform.base.BaseSdk;
import com.huawei.hiassistant.platform.base.module.ModuleInstanceFactory;
import com.huawei.hiassistant.platform.base.northinterface.Constants;
import com.huawei.hiassistant.platform.base.northinterface.VoiceKitSdk;
import com.huawei.hiassistant.platform.base.northinterface.asr.KitAsrInterface;
import com.huawei.hiassistant.platform.base.northinterface.idsdata.DataServiceInterface;
import com.huawei.hiassistant.platform.base.northinterface.obs.KitObsInterface;
import com.huawei.hiassistant.platform.base.northinterface.postoperation.KitOperationInterface;
import com.huawei.hiassistant.platform.base.northinterface.recognize.KitRecognizeInterface;
import com.huawei.hiassistant.platform.base.northinterface.recognize.RecognizerIntent;
import com.huawei.hiassistant.platform.base.northinterface.service.DecisionServiceInterface;
import com.huawei.hiassistant.platform.base.northinterface.tts.KitTtsInterface;
import com.huawei.hiassistant.platform.base.northinterface.ui.KitUiInterface;
import com.huawei.hiassistant.platform.base.northinterface.visible.VisibleInterface;
import com.huawei.hiassistant.platform.base.northinterface.wakeup.KitWakeupInterface;
import com.huawei.hiassistant.platform.base.policy.OfflineReportManager;
import com.huawei.hiassistant.platform.base.report.OperationReportUtils;
import com.huawei.hiassistant.platform.base.util.DeviceUtil;
import com.huawei.hiassistant.platform.base.util.IAssistantConfig;
import com.huawei.hiassistant.platform.base.util.KitLog;
import com.huawei.hiassistant.platform.base.util.SecureIntentUtil;
import com.huawei.hiassistant.platform.framework.VoiceKitSdkBootstrap;
import java.util.Optional;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
public abstract class VoiceKitSdk implements KitAsrInterface, DataServiceInterface, KitObsInterface, KitOperationInterface, KitRecognizeInterface, DecisionServiceInterface, KitTtsInterface, KitUiInterface, VisibleInterface, KitWakeupInterface {
private static final int COUNT_DOWN_TIME = 650;
private static final Object LOCK = new Object();
private static final String SDK_CLASSNAME = "com.huawei.hiassistant.platform.framework.VoiceKitSdkBootstrap";
private static final String TAG = "VoiceKitSdk";
protected static boolean isSdkCreated;
protected static CountDownLatch latch;
private static void addCountDown() {
Optional empty = Optional.empty();
synchronized (LOCK) {
try {
if (latch == null) {
latch = new CountDownLatch(1);
} else {
KitLog.info(TAG, "wait lock");
empty = Optional.ofNullable(latch);
}
} catch (Throwable th) {
throw th;
}
}
empty.ifPresent(new Consumer() {
@Override
public final void accept(Object obj) {
VoiceKitSdk.lambda$addCountDown$0((CountDownLatch) obj);
}
});
}
public static void create(Context context, Intent intent, VoiceKitSdkListener voiceKitSdkListener) {
create(context, intent, voiceKitSdkListener, null);
}
private static void handleError(VoiceKitSdkListener voiceKitSdkListener) {
voiceKitSdkListener.onError(0, "create sdk failed::catch exception");
releaseCountDown();
OperationReportUtils.getInstance().getKitLifeCycleRecord().setError(String.valueOf(0));
OperationReportUtils.getInstance().getKitLifeCycleRecord().setEndTime(System.currentTimeMillis());
OperationReportUtils.getInstance().reportKitLifeCycleRecord();
}
private static boolean isParamsValid(Context context, Intent intent, VoiceKitSdkListener voiceKitSdkListener) {
if (voiceKitSdkListener == null) {
KitLog.error(TAG, "VoiceKitSdk listener is null");
releaseCountDown();
return false;
}
if (context == null) {
KitLog.error(TAG, "context is null");
voiceKitSdkListener.onError(3, "param is invalid::context is null");
releaseCountDown();
return false;
}
if (intent != null && !TextUtils.isEmpty(SecureIntentUtil.getSecureIntentString(intent, RecognizerIntent.EXT_AUTH_AK)) && !TextUtils.isEmpty(SecureIntentUtil.getSecureIntentString(intent, RecognizerIntent.EXT_AUTH_SK))) {
return true;
}
KitLog.error(TAG, "ignore create::empty ak sk");
voiceKitSdkListener.onError(3, "empty ak sk");
releaseCountDown();
return false;
}
public static void lambda$addCountDown$0(CountDownLatch countDownLatch) {
try {
KitLog.info(TAG, "await sdk create.");
countDownLatch.await(650L, TimeUnit.MILLISECONDS);
} catch (InterruptedException unused) {
KitLog.error(TAG, "interruptException");
}
}
private static void logCreateInterfaceParams(Intent intent) {
StringBuilder sb = new StringBuilder();
if (TextUtils.isEmpty(SecureIntentUtil.getSecureIntentString(intent, RecognizerIntent.EXT_AUTH_CERT))) {
sb.append("cert is empty, ");
}
if (TextUtils.isEmpty(SecureIntentUtil.getSecureIntentString(intent, "sessionId"))) {
sb.append("session id is empty, ");
}
sb.append("disCallback is ");
sb.append(SecureIntentUtil.getSecureIntentBoolean(intent, RecognizerIntent.EXT_IS_NEED_DIS_CALLBACK, false));
sb.append(", ");
sb.append("countryCode is ");
sb.append(SecureIntentUtil.getSecureIntentString(intent, RecognizerIntent.EXT_ISSUE_COUNTRY_CODE));
sb.append(", ");
sb.append("vtId is ");
sb.append(SecureIntentUtil.getSecureIntentString(intent, RecognizerIntent.EXT_VTID));
KitLog.debug(TAG, sb.toString(), new Object[0]);
}
public static void releaseCountDown() {
Optional ofNullable;
synchronized (LOCK) {
ofNullable = Optional.ofNullable(latch);
latch = null;
}
ofNullable.ifPresent(new Consumer() {
@Override
public final void accept(Object obj) {
((CountDownLatch) obj).countDown();
}
});
}
public abstract String getVersionInfo(String str);
public abstract void release();
public abstract void releaseRecognizeEngine();
public abstract void releaseTtsEngine(Intent intent);
public abstract void renewSession(Intent intent);
public abstract void stopBusiness(Intent intent);
public static void create(Context context, Intent intent, VoiceKitSdkListener voiceKitSdkListener, SdkConfig sdkConfig) {
KitLog.info(TAG, "kitonCreate");
OfflineReportManager.getInstance().setOfflineReportMode((intent == null || !intent.hasExtra("isOfflineReport")) ? false : SecureIntentUtil.getSecureIntentBoolean(intent, "isOfflineReport", false));
APMS.getInstance().enableCollectionByUser(true);
KitLog.info(TAG, "VoiceKit sdk version= 11.3.1.311");
OperationReportUtils.getInstance().getKitLifeCycleRecord().setVoiceKitSdkVersion("11.3.1.311");
if (isParamsValid(context, intent, voiceKitSdkListener)) {
logCreateInterfaceParams(intent);
OperationReportUtils.getInstance().getKitLifeCycleRecord().setAppPkgName(context.getPackageName());
OperationReportUtils.getInstance().getKitLifeCycleRecord().setAppPkgVersion(IAssistantConfig.getInstance().getPkgVersion(context, context.getPackageName()));
if (intent.hasExtra("deviceName")) {
String secureIntentString = SecureIntentUtil.getSecureIntentString(intent, "deviceName", "phone");
KitLog.info(TAG, "deviceName :" + secureIntentString);
DeviceUtil.setDeviceName(secureIntentString);
}
if (isSdkCreated) {
KitLog.warn(TAG, "ignore create::isClientCreated true");
if (intent.hasExtra(Constants.UserData.PRIVACY_AGREEMENT)) {
ModuleInstanceFactory.State.platformState().getSessionState().setPrivacyAgreement(SecureIntentUtil.getSecureIntentBoolean(intent, Constants.UserData.PRIVACY_AGREEMENT, false));
}
voiceKitSdkListener.onError(1, "Sdk created already");
return;
}
addCountDown();
if (isSdkCreated) {
KitLog.warn(TAG, "ignore create::isClientCreated true");
if (intent.hasExtra(Constants.UserData.PRIVACY_AGREEMENT)) {
ModuleInstanceFactory.State.platformState().getSessionState().setPrivacyAgreement(SecureIntentUtil.getSecureIntentBoolean(intent, Constants.UserData.PRIVACY_AGREEMENT, false));
}
voiceKitSdkListener.onError(1, "Sdk created already");
return;
}
try {
Object newInstance = VoiceKitSdkBootstrap.class.newInstance();
if (newInstance instanceof BaseSdk) {
((BaseSdk) newInstance).initSdk(context, intent, voiceKitSdkListener, sdkConfig);
OperationReportUtils.getInstance().getKitLifeCycleRecord().setStartTime(System.currentTimeMillis());
} else {
KitLog.error(TAG, "object not VoiceKitSdk");
}
} catch (ClassNotFoundException e) {
e = e;
KitLog.error(TAG, "create sdk exception" + e.getMessage());
handleError(voiceKitSdkListener);
} catch (IllegalAccessException e2) {
e = e2;
KitLog.error(TAG, "create sdk exception" + e.getMessage());
handleError(voiceKitSdkListener);
} catch (InstantiationException e3) {
e = e3;
KitLog.error(TAG, "create sdk exception" + e.getMessage());
handleError(voiceKitSdkListener);
}
}
}
}