2012-01-11 2 views
1

Я создаю приложение для чтения qr-кода, при нажатии кнопки я открыл просмотр камеры. Тогда в зависимости от их результата он перейдет к следующему экрану, но второй раз, когда я открою экран, он даст мне ошибку CamController: get res failed: _camConfigHandle недействителен.Ошибка Blackberry _camConfigHandle недействительна

EDITED: У меня попробовать этот код для удаления сканера и перейти к следующему экрану

UiApplication.getUiApplication().invokeLater(new Runnable() { 
          public void run() { 
           try { 
            _scanner.getPlayer().stop(); 

           } catch (MediaException e) { 
            e.printStackTrace(); 
           } 
           _scanner.getPlayer().close(); 
           System.out.println("closeScan"); 
           _scanner.getPlayer().deallocate(); 
           System.out.println("deallocateScan"); 
           System.out.println("deleteAllScan"); 
           UiApplication.getUiApplication().popScreen(_barcodeScreen); 
          } 
         }); 

и это мой код для сканирования

private void scanBarcode() { 

     if (_barcodeScreen == null) { 
      Hashtable hints = new Hashtable(); 
      Vector formats = new Vector(); 
      formats.addElement(BarcodeFormat.QR_CODE); 
      hints.put(DecodeHintType.POSSIBLE_FORMATS, formats); 
      hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE); 
      BarcodeDecoder decoder = new BarcodeDecoder(hints); 
      try { 
       _scanner = new BarcodeScanner(decoder, new MyBarcodeDecoderListener()); 
       _barcodeScreen = new MyBarcodeScannerViewScreen(_scanner); 

      } catch (Exception e) { 
      System.out.println("error="+e.toString()); 
       return; 
      } 
     } 

     try { 
      _scanner.startScan(); 
      UiApplication.getUiApplication().pushScreen(_barcodeScreen); 
     } catch (Exception e) { 
      System.out.println("error1="+e.toString()); 
     } 

    } 

Заранее спасибо.

+0

Пожалуйста, разместите код. Вам будет проще помочь вам таким образом –

+0

У меня есть вопрос –

ответ

1

Правильно ли вы закрываете камеру? используйте следующий метод и приспособите его к аналогичным действиям, чтобы закрыть камеру должным образом.

//close the scanner 
public void closeScanner() 
{ 
if (this.player != null) { 
    try { 
    this.player.stop(); 
    } catch (MediaException e) { 
     //handle exception 
    Log.Error("Exception stopping player: " + e); 
    } 
    //de allocate and close player 
    this.player.deallocate(); 
    this.player.close(); 
} 
} 
Смежные вопросы