Мне нужен следующий код, и я просто хочу открыть фонарик в своем Galaxy Nexus (4.0.2), и он не смог этого сделать.
public class welcome extends Activity {
//MediaPlayer player;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
Camera cam = Camera.open();
Parameters p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
}
}
Мой файл манифеста:
<uses-sdk android:minSdkVersion="12" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
Я хотел бы спросить, является ли это моей ошибкой кодирования или проблемой версии для Android.
Благодаря
Ответ 1
Неисправность галактики не может использовать вспышку, не имея прикрепленного элемента surfaceView и surfaceHolder. У меня есть сам Nexus, и после добавления предварительного просмотра он работал. Поскольку вы не хотите видеть, что камера видит в приложении для фонарика, просто сделайте его размером 1x1.
Источник: Светодиодный фонарик не работает на Samsung Galaxy Nexus
Ответ 2
Вы пробовали код здесь:
http://android-er.blogspot.co.uk/2011/02/control-flash-light-function-as-torch.html
Он определенно работает на укоренившемся Desire, работающем на Cyanogenmod 7 и на ICS rom (4.0.3) для меня. Возможно, попробуйте запустить это и посмотреть, работает ли он, а затем перейти оттуда?
Он также включает проверки, чтобы узнать, может ли он найти камеру, затем откройте камеру. Кажется, нет необходимости в StartPreview().
Порядок событий выглядит иначе:
1: Если камера присутствует, откройте камеру
2: установка параметров
3: parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
4: camera.setParameters(параметры);
Ответ 3
Используйте вид поверхности для прикрепления камеры, так как некоторым устройствам требуется вид на поверхности. Я уверен, что это сработает
ссылка! для вас