Как автоматически захватить изображение с помощью моей мобильной камеры?

#android #service #camera

#Android #Обслуживание #камера

Вопрос:

Я новичок в программировании. Мое требование — автоматический захват фотографий с помощью моей мобильной камеры. Кто-нибудь может помочь решить мою проблему, заранее спасибо.

Я пытаюсь последние три дня, пожалуйста, решите мою проблему, если кому-то интересно

  public class ServiceActivity extends Activity {
String msg = "Android : ";
View view;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d(msg, "The onCreate() event");
}

public void startService(View view) {
    startService(new Intent(getBaseContext(), CameraService.class));
}

// Method to stop the service
public void stopService(View view) {
    stopService(new Intent(getBaseContext(), CameraService.class));
}}
  

ниже приведен код службы, с помощью которого камера моего мобильного телефона должна открываться автоматически, затем следует сделать снимок, не нажимая кнопку камеры, затем его следует сохранить в локальном хранилище

  public class CameraService extends Service {
static int x=0;
//Camera variables
//a surface holder
private SurfaceHolder sHolder;
//a variable to control the camera
private Camera mCamera;
//the camera parameters
private android.hardware.Camera.Parameters parameters;
/** Called when the activity is first created. */

@Override
public void onCreate()
{
    super.onCreate();

}
@Override
public void onStart(Intent intent, int startId) {
    // TODO Auto-generated method stub
    super.onStart(intent, startId);

    mCamera = Camera.open();
    SurfaceView sv = new SurfaceView(getApplicationContext());


    try {
        mCamera.setPreviewDisplay(sv.getHolder());
        parameters = mCamera.getParameters();

        //set camera parameters
        mCamera.setParameters(parameters);
        mCamera.startPreview();
        mCamera.takePicture(null, null, mCall);

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    //Get a surface
    sHolder = sv.getHolder();
    //tells Android that this surface will have its data constantly replaced
    sHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}



Camera.PictureCallback mCall = new Camera.PictureCallback()
{

    public void onPictureTaken(byte[] data, Camera camera)
    {
        //decode the data obtained by the camera into a Bitmap

        FileOutputStream outStream = null;
        try{
            x  ;
            outStream = new FileOutputStream("/sdcard/Image" x ".jpg");
            outStream.write(data);
            outStream.close();
            mCamera.release();
            Toast.makeText(getApplicationContext(), "picture clicked", Toast.LENGTH_LONG).show();
        } catch (FileNotFoundException e){
            Log.d("CAMERA", e.getMessage());
        } catch (IOException e){
            Log.d("CAMERA", e.getMessage());
        }

    }
};
@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}}
  

Комментарии:

1. Таким образом, камера открывается автоматически, а снимок делается и сохраняется в файле. Все автоматически. Неплохо. Молодец.

2. @blackapps вы знаете, как это сделать

3. Вы не поняли мой комментарий. Если у вас возникли какие-либо проблемы, сообщите о них в своем сообщении. А затем спросите. Я не вижу проблем. Я не вижу вопросов.

4. Вы должны точно указать, что не работает. Вы не сказали ничего точного. Не работает только сохранение в файл? Мы не знаем! Вы должны сказать, что именно происходит, а что нет. Не давайте нам угадывать. ПОМЕСТИТЕ ВСЕ ЭТО В СВОЙ ПОСТ.

5. @blackapps Камера не делает снимок