android - 为 Socket 设备设置声音配置

标签 android ios socketscan

使用以下代码尝试为 Socket 8ci 设置声音开/关...对我来说不太适用。你能建议一个正确的命令吗?正如您在代码中看到的那样,我根据首选项 bool 值设置了声音频率。谢谢!

DeviceInfo device = (DeviceInfo) _scanApiHelper.getDevicesList().lastElement();
short[] soundConfig = new short[3];
// default the sound to On
if(getBRSharedPreferenceBoolean(PreferencesActivity.PREF_SOCKET_SCANNER_BEEP, true)) {
    soundConfig[0] = ISktScanProperty.values.soundFrequency.kSktScanSoundFrequencyHigh;
} else {
    soundConfig[0] = ISktScanProperty.values.soundFrequency.kSktScanSoundFrequencyNone;
}
soundConfig[1] = 200;
soundConfig[2] = 100;

// set the scanner sound config
_scanApiHelper.postSetSoundConfigDevice(
        device,
        ISktScanProperty.values.soundActionType.kSktScanSoundActionTypeGoodScan,
        soundConfig,
        _onSetScanApiConfiguration);

最佳答案

问题

声音配置设备

声音配置允许您设置 4 种不同的“ Action ”:kSktScanSoundActionTypeGoodScankSktScanSoundActionTypeGoodScanLocalkSktSoundActionTypeBadScankSktScanSoundActionTypeBadScanLocalGoodScanBadScan 之间的区别是不言自明的,但是 GoodScanGoodScanLocal 之间的区别不是很大清除。

GoodScanLocal,默认是扫描条码时发出的声音

GoodScan 仅在主机(例如 Android、iOS、Windows)向扫描器发送 GoodScan 或 BadScan 通知(通过 kSktScanPropIdDataConfirmationDevice)时发出

Note: If you are using GoodScan/BadScan to verify decoded data, you probably want to change the confirmation mode (see kSktScanPropIdDataConfirmationMode in the docs). Otherwise the scanner will beep/flash/vibrate twice per scan

您的代码 fragment 所基于的代码 fragment 使用后者来证明音调既可配置又可由主机触发。

您选择一种音调,按下确认按钮,扫描仪就会发出该音调。乍一看不太清楚,但是如果你使用 SingleEntry 中的下拉菜单更改音调并点击确认,这三种音调非常明显。但是,如果您使用相同的下拉菜单更改音调,那么您在扫描条形码时听到的音调应该不会改变。

解决方案

实现您想要实现的目标的最好和最简单的方法是设置本地解码操作并禁用蜂鸣声

本地解码操作

// import static com.socketmobile.scanapi.ISktScanProperty.values.localDecodeAction.*;

DeviceInfo device = (DeviceInfo) _scanApiHelper.getDevicesList().lastElement();
int decodeAction = kSktScanLocalDecodeActionFlash | kSktScanLocalDecodeActionRumble;
if(getBRSharedPreferenceBoolean(PreferencesActivity.PREF_SOCKET_SCANNER_BEEP, true)) {
    decodeAction |= kSktScanLocalDecodeActionBeep;
}
_scanApiHelper.postSetDecodeAction(device, decodeAction)

为了完整起见,要使用您发布的代码获得类似的结果,您只需将 kSktScanSoundActionTypeGoodScan 更改为 kSktScanSoundActionTypeGoodScanLocal。虽然我不推荐它。

关于android - 为 Socket 设备设置声音配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933522/

相关文章:

ios - App Store Connect 响应代码为 -22020(无法验证您的应用程序。我们无法创建身份验证 session 。)

android - 如何将 SocketMobile 与 React Native 应用程序集成?

javascript - 在 android 中 react native Cloudkit 推送通知

android - 在 Android 中轻松翻译 xml

iphone - 以编程方式将 UITableView 行从一个位置移动/动画化到另一个位置

ios - 如何在 AFNetworking 2.0 中设置请求超时和缓存策略?

ios - 安装socket mobile scan api sdk后报"The application bundle does not contain a valid identifier"

objective-c - EAAccessoryManager notifyObserversThatAccessoryDisconnectedWithUserInfo 崩溃

android - EditText 中的动态自动大写、自动更正或密码字段

java - 检查表数据 - Jsoup