我正在使用Android在Android中开启我的S Voice应用程序。如前所述,我将使用以下代码打开它
SVOICE_PACKAGE_NAME = "com.samsung.voiceserviceplatform";
SVOICE_LISTEN_ACTION = "com.sec.action.SVOICE";
以上代码在使用Android 5.0的Galaxy S4中运行良好。但是,问题来自于使用Android 6.0的Galaxy S7中的第一行和第二行。在使用Android 6.0的Galaxy S7中,第一行和第二行必须修改为
:lang()
还有应用程序名称S Voice改变了" S Voice"到" S Voice App"。这种变化给了我一项艰难的工作。因此,在决定调用这些功能之前,我想确定手机中的S语音应用程序。目前,我不知道改变是来自Android版本还是设备。您是否有任何想法可以在各种手机中调整问题:S4和S7?
答案 0 :(得分:1)
每当打开应用程序时,可能存在程序包或应用程序名称差异。这是一个标准的实用方法来检查:
/**
* Check if the user has a package installed
*
* @param ctx the application context
* @param packageName the application package name
* @return true if the package is installed
*/
public static boolean isPackageInstalled(@NonNull final Context ctx, @NonNull final String packageName) {
if (DEBUG) {
MyLog.i(CLS_NAME, "isPackageInstalled");
}
try {
ctx.getApplicationContext().getPackageManager().getApplicationInfo(packageName, 0);
return true;
} catch (final PackageManager.NameNotFoundException e) {
if (DEBUG) {
MyLog.w(CLS_NAME, "isPackageInstalled: NameNotFoundException");
}
} catch (final NullPointerException e) {
if (DEBUG) {
MyLog.w(CLS_NAME, "isPackageInstalled: NullPointerException");
}
} catch (final Exception e) {
if (DEBUG) {
MyLog.w(CLS_NAME, "isPackageInstalled: Exception");
}
}
return false;
}
您需要删除我的自定义日志记录。