2017-03-08 22 views
-1

ブルートゥースバーコードスキャナを使用してバーコードを読み取る必要があります。 私はBluetoothキーボードエミュレーション(HID)モードを使用したくありません。スキャンする前にテキストボックスを指し示すのは難しいためです。AndroidのBluetoothバーコードリーダーからデータを読み取る

私はこのdeveloper.android.com/guide/topics/connectivity/bluetooth.htmlを読んでいますが、まだ使用できるものは見つかりませんでした。 終了コード区切り文字(CR、LFなど)を使用して書き込みイベントを待機する必要があります。

+1

方法を考え出しますこれを行うにはあなたの責任です。私たちはあなたのためにあなたの仕事をするためにここにいません。 –

+0

これはあなたの責任であるかもしれないと思ったことは一度もありませんでした:)これは私が今直面している問題であり、一般的な関心事の一つかもしれないと思います。このサイトのすべての投稿と同様です。あなたが誰かに意味を持ちたいなら、自分の裏庭で注意を払ってください! –

+0

私は全く意味がありません、私はあなたがこの質問を投稿する間違ったサイトであることを指摘しています。このサイトの目的は、人々がコードの問題を修正するのを手助けし、人々に物事を行う方法を教えないようにすることです。だから、あなたが間違ったサイトにあるコードの特定の問題を持っていない場合、あなたの質問はすぐに受信されたり、すぐには答えられません。 –

答えて

2

SSPモードに切り替えるHIDモードのスイッチ*がBluetoothのバーコードスキャナにない場合、彼と接続することはできません。 (*ハードウェアまたはソフトウェアのスイッチ)

AndroidはHID Bluetooth(ヒューマンインターフェイスデバイス)とネイティブで接続しています。

したがって、私はキーボードイベントを読み書きして問題を解決します。

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 
    if (barCodeRadearIsOn && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER || (event.getKeyCode() >= 7 && event.getKeyCode() <= 16))) { 
     if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
      if (event.getAction() == KeyEvent.ACTION_UP){ 
       Toast.makeText(context, barCode, Toast.LENGTH_LONG).show(); 

       ....... ....... 

       barCode = ""; 
      } 
     } else { 
      if (event.getAction() == KeyEvent.ACTION_UP){ 
       barCode = barCode + (char)event.getUnicodeChar(); 
      } 
     } 
     return true; 
    } else { 
     return super.dispatchKeyEvent(event); 
    } 
} 

注:

  • barCodeRadearIsOn - ユーザーが
  • /オフにこのコード "インターセプト" のスイッチを持っている唯一の0から9
に文字を入力して、数値
関連する問題