2012-04-07 5 views
0

懐中電灯アプリに問題があります。Android 4.0.4 Nexus S i9020。 私は何十もの提案をstackoverflowに投稿しましたが、何も私のために働いていません。 アプリはAndroidバージョン2.3.6で動作しましたが、4.0.4以降はトーチが機能しなくなりました。トーチアプリでエラーAndroid 4.0.4 Nexus S i9020

ここに私のimplとlogcat出力があります。

@Override 
protected void onResume() 
{ 
    super.onResume(); 
    _Camera = Camera.open(); 
} 

@Override 
protected void onPause() 
{ 
    if (_Camera != null) 
    { 
     _Camera.release(); 
    } 
} 

//called within runnable and post to a handler 
private void processOffClick() 
{ 

    if (_Camera != null) 
    { 
     Parameters params = _Camera.getParameters(); 
     params.setFlashMode(Parameters.FLASH_MODE_OFF); 
     _Camera.setParameters(params); 
     _Camera.stopPreview(); 
    } 
} 

//called within runnable and post to a handler 
private void processOnClick() 
{ 
    if (_Camera != null) 
    { 
     Parameters params = _Camera.getParameters(); 
     params.setFlashMode(Parameters.FLASH_MODE_TORCH); 
     _Camera.setParameters(params); 
     _Camera.startPreview(); 
    } 
} 

また、runnablesを使用せずにonclick offclickメソッドを実行しようとしました。

Logcatでは、onclickが実行された後にフォールリングエラーが発生します。

04-07 14:10:02.719: E/CameraHardwareSec(82): preview window is NULL! 
04-07 14:10:02.719: I/CameraHardwareSec(82): virtual android::status_t android::CameraHardwareSec::startPreview() : deferring 

私の電話機で動作するいくつかのカメラアプリが市場にあります。だから、懐中電灯を点灯させるには何らかの方法が必要です。

SurfaceView/Holderを追加しようとしましたが、動作しませんでした。たぶん私は間違ったことをしました。あなたは表面図を必要4.0+バージョンでOKすべてを、やっている

乾杯カリム

答えて

0

。宣言1このような何かをし、その後

あなたlayout.xmlに:

はSurfaceHolder.Callback

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //init your layout 
     this._surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView); 
     this._surfaceHolder = this._surfaceView.getHolder(); 
     this._surfaceHolder.addCallback(this); 
     this._surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 

} 

@Override 
protected void onResume() 
{ 
    super.onResume(); 
    _Camera = Camera.open(); 
    this._camera.startPreview(); 
    this._camera.setPreviewDisplay(this._surfaceHolder); 
} 


@Override 
    public void surfaceChanged(SurfaceHolder holder, int format, int width, 
      int height) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void surfaceCreated(SurfaceHolder holder) { 
     //this._surfaceHolder = holder; 
    } 

    @Override 
    public void surfaceDestroyed(SurfaceHolder holder) { 
     //this._surfaceHolder = null; 
    } 
+0

を実装する非常に多く、それが動作していただきありがとうございます。サーフェスビューには少なくとも1dipの高さと幅があることが重要です。 –

+0

私は同じことをやっているが、まだこのエラーが起きているics + os –

関連する問題