Вопрос по android – Открывающийся фонарик Galaxy Nexus

8

Я занимаюсь разработкой приложения, которое должно открыть фонарик моего устройства Galaxy Nexus. Я сослался на пост здесь

Светодиодный фонарик на Galaxy Nexus управляется каким API?

public class TestCamera extends Activity implements SurfaceHolder.Callback{
Camera mCamera;
public static SurfaceView preview;
public static SurfaceHolder mHolder;
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    preview = (SurfaceView) findViewById(R.id.camSurface);
    mHolder = preview.getHolder();
    mCamera = Camera.open();
    try {
        mCamera.setPreviewDisplay(mHolder);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    Button onLEDbtn = (Button) findViewById(R.id.onLED_btn);
    onLEDbtn.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_SHORT).show();
            Parameters params = mCamera.getParameters();
            params.setFlashMode(Parameters.FLASH_MODE_TORCH);
            mCamera.setParameters(params);      
            mCamera.startPreview();
        }

    });
}



}


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

    }


    public void surfaceCreated(SurfaceHolder holder) {
        // TODO Auto-generated method stub
        mHolder = holder;
        try {
            mCamera.setPreviewDisplay(mHolder);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }


    public void surfaceDestroyed(SurfaceHolder holder) {
        // TODO Auto-generated method stub
         mCamera.stopPreview();
            mHolder = null;
    }




}

Manifest:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

Тем не менее, я все еще не могу включить фонарик. Кто-нибудь может указать на мои ошибки? Спасибо

Вы должны принять ответ ниже Guy
Вы можете найти все здесьstackoverflow.com/questions/6068803/… user219882
& lt; использует-разрешение android: name = & quot; android.permission.CAMERA & quot; / & GT; & lt; использует-разрешение android: name = & quot; android.permission.FLASHLIGHT & quot; / & gt; & lt; использует функцию android: name = & quot; android.hardware.camera & quot; / & GT; & lt; использует функцию android: name = & quot; android.hardware.camera.flash & quot; / & gt; Выше находится мой файл манифеста. Кроме того, я добавил представление camSurface в main.xml. Будет ли это проблемой? Я могу получить сообщение с тостом, но не могу включить фонарик ... Пожалуйста, помогите. Спасибо!! user1311794
Решено! mHolder.addCallback (это); должен быть добавлен после mHolder = preview.getHolder (); user1311794
возможный дубликатUnable to use the flashlight in Galaxy Nexus Andro Selva

Ваш Ответ

3   ответа
0

Вам нужно добавить этот тег в файл манифеста.

<uses-feature android:name="android.hardware.camera.flash"/>
7

Вы должны установить обратный звонок mHolder.addCallback (это);

0

Попробуйте добавить:

android:name="android.permission.FLASHLIGHT"
android:name="android.hardware.camera.flash

И посмотрите этот пост: Как программно включить подсветку камеры в Android?

Я следил за этими постами, чтобы разработать свое приложение. Тем не менее, это не работает user1311794
и этот :stackoverflow.com/questions/8876843/…
Я нашел это сообщение:stackoverflow.com/questions/9505945/…
Я думаю, что я не мог помочь вам больше, чем это. Сожалею.
У меня есть следующий манифест & lt; Использования разрешения Android: имя = & quot; android.permission.CAMERA & quot; / & GT; & lt; использует-разрешение android: name = & quot; android.permission.FLASHLIGHT & quot; / & gt; & lt; использует функцию android: name = & quot; android.hardware.camera & quot; / & GT; & lt; использует функцию android: name = & quot; android.hardware.camera.flash & quot; / & gt; & lt; разрешение android: name = & andot. android.permission.FLASHLIGHT & quot; Android: permissionGroup = & Quot; android.permission-group.HARDWARE_CONTROLS & Quot; Android: ProtectionLevel = & Quot; нормальный & Quot; / & GT; Однако это не работает. user1311794

Похожие вопросы