2017-10-24 65 views
0

ユーザーが特定のボタン(ボリューム)を押すと、QRコードを読み取るスキャナを起動します。 OnKeyDownイベントをオーバーライドしますが、イベントが終了すると、アプリケーションは「割り込みモード」を開始します。XamarinのOnKeyDown

public override bool OnKeyDown(Keycode keyCode, KeyEvent e) 
    {    
     switch (keyCode) 
     { 
      // in smartphone 
      case Keycode.VolumeUp: 
       ReadQr(); 
       break; 
       //return true; 

      // in glasses 
      case Keycode.DpadRight: 
       ReadQr(); 
       break;      
       //return true; 
     }    
     return base.OnKeyDown(keyCode, e); 
    } 

ありがとう。

private async Task<string> ReadQr() 
    { 
     QRScanner QRcode = new QRScanner(); 
     var result = await QRcode.ScanQR(); 

     UDPmanager clienteUDP2 = new UDPmanager(IPAddress.Broadcast.ToString(), _port); 
     clienteUDP2.ClientWrite(result.ToString()); 

     return result.ToString(); 
    } 
+0

なぜあなたは 'return true;'とコメントしましたか? –

+0

ブレークにアクセスできないので、不要です –

+0

私に 'ReadQr()'コードを表示できますか?それを直接実行していますか? –

答えて

0

が、イベントが終了したときにアプリが「割り込みモード」を開始します。

私はあなたが休憩モードを意味すると思います。キーのコードは上手く見えます。私はあなたのReadQr()を確認することをお勧めします、私はあなたのエラーがあなたのアプリケーションのその部分になることを確信しています。

+0

申し訳ありませんが、トランケーションで紛失しました:Pはい、ブレークモードです。 ReadQR関数を使って私の最初の投稿を更新しました。 –

+0

あなたのメソッドを 'try/catch'に入れます。もしBreak Modeに入っていなければ、そのエラーがそこにあることを知るでしょう。 –

+0

この方法は問題なく動作しますが、問題はスキャナが起動する前に終了するため、キーダウンしています。私はスキャナが何かを読むまで待ちますが、画面は黒くなります。私はkeydownイベントの途中であり、GUIで問題が発生していると思います。S –

関連する問題