2017-12-15 5 views
1

私のアプリでは、Socket Mobile Scannerがインベントリ項目をスキャンするために統合されています。私の要件は、アプリの検索/チェック項目が存在するまでスキャナのスキャンを停止することです。APIを使用してSocket Mobileスキャナーのスキャンを切断/停止する方法は?

最近のアイテムが有効なアイテムでない場合、スキャナーはスキャンを停止する必要があります。

私はコードの下に使用:

/// here scanApiHelper is instance of ScanApiHelper 
scanApiHelper?.pop(self) 
scanApiHelper?.close() 

答えて

1

あなたはこのシナリオをカバーするどの使用できるデータ確認モードがあります。このモードでは、アプリケーションからのデータを明示的に確認しない限り、トリガーは一定時間ロックされます。トリガー・ロックアウト時間を設定することができます。もう1つの可能性は、一時的にトリガーを無効にして、アプリの準備ができたらトリガーを再び有効にすることです。

func onDecodedDataResult(_ result: Int, device: DeviceInfo!, decodedData: ISktScanDecodedData!) { 
    print("onDecodedDataResult in the detail view") 
    if result==ESKT_NOERROR { 
     let rawData = decodedData.getData() 
     let rawDataSize = decodedData.getSize() 
     let data = Data(bytes: UnsafePointer<UInt8>(rawData!), count: Int(rawDataSize)) 
     print("Size: \(rawDataSize)") 
     print("data: \(data)") 
     let str = NSString(data: data, encoding: String.Encoding.utf8.rawValue) 
     let string = str as! String 
     print("Decoded Data \(string)") 
     self.decodedData.text = string 
     // this code can be removed if the application is not interested by 
     // the host Acknowledgment for the decoded data 
     #if HOST_ACKNOWLEDGMENT 
      ScanApiHelper.shared().postSetDataConfirmationOkDevice(device, target: self, response: #selector(onSetDataConfirmation(_:))) 
     #endif 
    } 
} 

#if HOST_ACKNOWLEDGMENT 
func onSetDataConfirmation(_ scanObj: ISktScanObject){ 
    let result = scanObj.msg().result() 
    if result != ESKT_NOERROR { 
     print("error trying to confirm the decoded data: \(result)") 
    } 
} 
#endif 

スキャナがこのモードに一度設定する必要があり:

#if HOST_ACKNOWLEDGMENT 
     scanApiHelper?.postGetLocalAcknowledgmentDevice(deviceInfo, target: self, response: #selector(onGetLocalAcknowledgment(_:))) 
     scanApiHelper?.postGetDecodeActionDevice(deviceInfo, target: self, response: #selector(onGetDecodeAction(_:))) 
    #else // to remove the Host Acknowledgment if it was set before 
     scanApiHelper?.postGetLocalAcknowledgmentDevice(deviceInfo, target: self, response: #selector(onGetLocalAcknowledgmentLocalAck(_:))) 
     scanApiHelper?.postGetDecodeActionDevice(deviceInfo, target: self, response: #selector(onGetDecodeActionLocalAck(_:))) 
    #endif 

は、データ確認のコード例を有するのGitHub singleentry-IOS(https://github.com/SocketMobile/singleentryswift-ios)を見てください私はこれが役立つことを願っています

関連する問題