相机意图根本无法正常工作 [英] The Camera Intent is simply not working

查看:168
本文介绍了相机意图根本无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 公共类CameraintentActivity延伸活动{    字符串_path,sliderpather;
    Button按钮;
    意图意图;
    乌里outputFileUri;
    档案文件;
    / **当第一次创建活动调用。 * /
    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);        按钮=(按钮)findViewById(R.id.button1);        _path = Environment.getExternalStorageDirectory()的getName()+即File.separatorChar +make_machine_example.jpg。
        文件=新的文件(_path);
        outputFileUri = Uri.fromFile(文件);        意图=新意图(android.provider.MediaStore.ACTION_IM​​AGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT,outputFileUri);        button.setOnClickListener(
            新OnClickListener()
            {
                公共无效的onClick(视图v)
                {
                    startActivityForResult(意向,0);
                }
            }
        );
    }
}

我想我的应用程序,以便它拉的摄像头,拍照和图片保存到我想要的目录,但它不工作...

和是在AndroidManifest.xml中包含以下权限

  CAMERA WRITE_INTERNAL_STORAG​​E WRITE_EXTERNAL_STORAG​​E


解决方案

使用低于code为正确的URI传递到相机活动

 文件f =新的文件(Environment.getExternalStorageDirectory(),hello.jpg);
乌里outputFileUri = Uri.fromFile(F);
意图=新意图(android.provider.MediaStore.ACTION_IM​​AGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,outputFileUri);
startActivityForResult(意向,0);

目前你正在做的是错误的方式。由于@Sean欧文曾建议你,你是发出错误的URI。

public class CameraintentActivity extends Activity {

    String _path, sliderpather;
    Button button;
    Intent intent;
    Uri outputFileUri;
    File file;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        button = (Button)findViewById(R.id.button1);

        _path = Environment.getExternalStorageDirectory().getName()  + File.separatorChar +  "make_machine_example.jpg";
        file = new File( _path );
        outputFileUri = Uri.fromFile( file );

        intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
        intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );

        button.setOnClickListener(
            new OnClickListener()
            {
                public void onClick(View v)
                {
                    startActivityForResult( intent, 0 );
                }
            }
        );
    }
}

I want my app so it pulls the camera, takes a picture, and saves the picture into my desired directory but it is not working...

and yes the AndroidManifest.xml contains the following permissions

CAMERA WRITE_INTERNAL_STORAGE WRITE_EXTERNAL_STORAGE

解决方案

Use below code to pass the correct uri to the camera activity

File f = new File(Environment.getExternalStorageDirectory(), "hello.jpg");
Uri outputFileUri = Uri.fromFile( f );
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );        

Currently you are doing it wrong way. As @Sean Owen had suggest you, you are sending the wrong uri.

这篇关于相机意图根本无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆