0

Socket Mobile SDK のドキュメントには、SingleEntry の例を使用するには、ソケット モバイル スキャナを「SPP」モードにする必要があると記載されています。ただし、最初のペアリングでこのモードにすると、私がテストした Android フォンのどれもデバイスを認識しないようです。ペアリングされたデバイスのリストに表示され、正常に接続されますが、スキャンが発生したときにイベント (OnDeviceArrival、OnDecodedData など) は発生しません。

SingleEntry サンプル アプリを Socket Mobile S800 で動作させるには、以下の手順 (正確に) に従うことしかできません。

  1. スキャナが HID モードであることを確認します (デフォルト)
  2. Android デバイスで、ペアリング可能なデバイスをスキャンします。(S800 はキーボード アイコン付きで表示されます)
  3. S800 デバイスを選択します。(S800は接続時にビープ音確認)
  4. デバイスがペアリングされたら、ペアリングを解除します。
  5. 適切なコードをスキャンして、S800 モードを「SPP」に変更します (Xamarin SingleEntry の例で動作する推奨モード)。
  6. Android フォンで S800 デバイスと再ペアリングします。(S800 アイコンはキーボードではなくデスクトップになりました)
  7. 「Socket EZ Pair」アプリを開き、Bluetooth を使用してペアリングを選択し、リストから S800 デバイスを選択します。
  8. これで、SingleEntry プロジェクトで OnDecodedData コールバックが発生します。

「SPP」モードのときにデバイスを適切にペアリングするために、「ソケット EZ ペア」アプリは何をコードで実行する必要がありますか?

クロスプラットフォーム Bluetooth スキャンのためのより良いソリューションはありますか? OnScan (OnDecodedData) イベントだけに特に興味があります...

4

1 に答える 1

1

アップデート

説明は実際には非常に簡単です。SingleEntry Xamarin.Android アプリは、ScanAPI 用のスキャナーの構成を処理しません。

ご指摘のとおり、スキャナーをペアリングした後、アプリがスキャナーを認識する前に EZ ペアを使用する必要があります。これは、Bluetooth 設定を使用してスキャナーをペアリングすると、スキャナーへの送信接続が作成されますが、ScanAPI は受信接続をリッスンするためです。EZ ペアは、ペアリングされた Bluetooth デバイスのリストを表示し、選択したデバイスに接続し、接続を閉じる前にそのスキャナーを再接続するように構成します。

SingleEntry Androidサンプル アプリケーションには EZ ペア ロジックが含まれていますが、Xamarin サンプルには含まれていません。

ただし、EZ ペアを使用してスキャナーを再接続するように構成すると、変更されていない SingleEntry Xamarin.Android サンプル アプリケーションで、デバイスの到着とデコードされたデータの通知を受け取るはずです。

元の答え

解決策ではありませんが、確認するのは良いことです

ランタイム権限は Android 6.0 で導入されましたが、SingleEntry は必要な権限を確認するように更新されていません。残念ながら、ターゲット フレームワークを設定するファイルは git にチェックインされていないため、サンプル アプリの新しいクローンは、SingleEntry が設計されたバージョンよりも新しいバージョンをターゲットにするようになりました。

[設定] > [アプリ] > [単一エントリ] > [アクセス許可] を開き、ストレージのアクセス許可を有効にすると、機能し始めます。

本当の解決策は、アプリケーションを呼び出す前にアクセス許可WRITE_EXTERNAL_STORAGEを確認することです。BLUETOOTHScanApiHelper.Open()

于 2016-12-21T21:15:23.017 に答える