Я пытаюсь сделать простое приложение, которое будет нажимать кнопку на кнопке, чтобы включить вспышку камеры, а на другой щелчок ее отключит, чтобы мы могли использовать ее в качестве фонарика. Но вспышка не держится. ниже мой флэш-фрагментВспышка камеры не работает в android
public class FlashFragment extends Fragment {
private boolean isLighOn = false;
private Camera camera;
private Button button;
public FlashFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_flash, container, false);
button = (Button) rootView.findViewById(R.id.buttonFlashlight);
Context context = getActivity();
PackageManager pm = context.getPackageManager();
// if device support camera?
if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
Log.e("err", "Device has no camera!");
}
try{
camera = Camera.open();
final Camera.Parameters p = camera.getParameters();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (isLighOn) {
Log.i("info", "torch is turn off!");
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.stopPreview();
isLighOn = false;
} else {
Log.i("info", "torch is turn on!");
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.startPreview();
isLighOn = true;
}
}
});
}catch(Exception e){
e.printStackTrace();
}
// Inflate the layout for this fragment
return rootView;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onDetach() {
super.onDetach();
}
}
Вы добавили необходимые разрешения к вашему файлу AndroidManifest.xml? – Robbie188
[очень первый абзац ...] (http://developer.android.com/reference/android/hardware/Camera.Parameters.html) – Selvin