如何为所有Android设备创建通用的相机动作

Siv*_*a K 0 java upload camera android

在我的应用程序中,我想使用相机捕获图像并发送到服务器.

当用户打开我的应用程序的相机部分时,我想向他显示他正在使用的设备的默认相机.目前以下是我用来捕捉图像的两行代码

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 startActivityForResult(intent, TAKE_RECEIPT);
Run Code Online (Sandbox Code Playgroud)

当我在HTC设备中运行此代码时,在捕获图像后,它显示了带有完成和重拍按钮的图像预览.当我点击完成后,它将移至上一个活动.

当我在moto设备中使用代码时,在捕获图像后,它显示了带有插入,重新拍摄和取消的图像预览.当我点击完成后,它将移至上一个活动.

像这样,所有设备都会有所不同.因此,当我点击任何设备的完成或插入或任何其他按钮肯定按钮时,我想开始上传过程.

如何处理请帮帮我....

Moh*_*ada 7

您可以使用以下代码来解决您的问题......

protected void startCameraActivity() 

{

    // TODO Auto-generated method stub
        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
        intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );

        startActivityForResult( intent, 0 );
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {   
        switch( resultCode )
        {
            case 0:
                break;

            case -1:
                onPhotoTaken();
                break;
        }
    }

    protected void onPhotoTaken()
    {

        ///write code here what you want to done after capture the image using device camera
    }

    @Override 
    protected void onRestoreInstanceState( Bundle savedInstanceState)
    {
        if( savedInstanceState.getBoolean( add_project1.PHOTO_TAKEN ) ) 
        {
            onPhotoTaken();
        }
    }

    @Override
    protected void onSaveInstanceState( Bundle outState ) 
    {
        outState.putBoolean( add_project1.PHOTO_TAKEN, _taken );
    }
Run Code Online (Sandbox Code Playgroud)