Bonjour, je suis en train de coder une application lampe torche basique avec seulement un bouton on/off , le flash s'active / désactive quand on clique sur le bouton.
Seulement, j'ai un problème, le flash ne s'active pas , il ne se passe rien lorsque j'appuis sur le bouton (je precise que j'ai tester le projet sur un motorola defy). Je voudrais donc savoir si j'ai oublié quelque chose dans le code source, merci d'avance !

voici le fichier java de l'activité:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.jimmy.android.lampe;
 
import android.app.Activity;
import android.os.Bundle;
import android.hardware.Camera;
import android.view.*;
import android.widget.*;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
 
public class LampeTorcheActivity extends Activity implements SurfaceHolder.Callback {
 
 
	boolean on;
	ToggleButton interrupteur;
	private Camera camera;
	Camera.Parameters p;
	private SurfaceView surfaceView;
	private SurfaceHolder surfaceHolder;
 
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        surfaceView = (SurfaceView)findViewById(R.id.surface_view);
        surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(this);
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
 
        on = false;
 
        interrupteur = (ToggleButton) findViewById(R.id.toggleButton1);
 
        camera = Camera.open();
        p = camera.getParameters();
        camera.setParameters(p);
        camera.startPreview();
 
        interrupteur.setOnClickListener(new View.OnClickListener() {
 
			public void onClick(View v) {
				// TODO Auto-generated method stub
				on = !on;
				if(on){
					p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
			        camera.setParameters(p);
 
				}else{
					p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
			        camera.setParameters(p);
				}
 
			}
		});
    }
 
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
 
    }
    public void surfaceCreated(SurfaceHolder holder) {
 
    }
    	/**
        * Méthode appelée immédiatement avant la destruction de la surface.
        */
    public void surfaceDestroyed(SurfaceHolder holder) {
    	if (camera != null) {
    		camera.stopPreview();
    		camera.release();
    		}
    }
}
et l'interface XML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="center_vertical|center_horizontal" >
 
 
	<SurfaceView
	android:id="@+id/surface_view"
	android:layout_width="1dp"
	android:layout_height="1dp"
	/>
 
    <ToggleButton
        android:id="@+id/toggleButton1"
        android:layout_width="82dp"
        android:layout_height="wrap_content"
        android:text="ToggleButton" />
 
</LinearLayout>