Android 在webview中使用库存摄像头捕捉图像

Android 在webview中使用库存摄像头捕捉图像,android,webview,camera,android-camera-intent,Android,Webview,Camera,Android Camera Intent,我正在尝试使用onClickListener启动android摄像头,拍摄一张照片,保存到SD卡上的特定文件夹中,然后在网络视图中显示捕获的图像。 这是到目前为止我的密码 private static final int CAMERA_REQUEST = 1888; WebView WV; Button capture; Uri mCapturedImageURI; @Override public void onCreate(Bundle savedInstanceState) {

我正在尝试使用onClickListener启动android摄像头,拍摄一张照片,保存到SD卡上的特定文件夹中,然后在网络视图中显示捕获的图像。 这是到目前为止我的密码

private static final int CAMERA_REQUEST = 1888;
WebView WV;
Button capture;
Uri mCapturedImageURI;






@Override
public void onCreate(Bundle savedInstanceState) {



    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    this.WV =(WebView) this.findViewById(R.id.webView1);

    this.capture =(Button) findViewById(R.id.button1);


    capture.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {


             String fileName = "temp.jpg";  
                ContentValues values = new ContentValues();  
                values.put(MediaStore.Images.Media.TITLE, fileName);

                mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);  


            Intent cameraIntent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE);
             cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
                     Uri.fromFile(new File( "sdcard/image")));  



             startActivityForResult(cameraIntent, CAMERA_REQUEST);


        }
    });

}
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  

     super.onActivityResult( requestCode, resultCode,  data);

     if (requestCode == CAMERA_REQUEST) {

         setContentView(R.id.webView1);
         WV.getSettings().setAllowFileAccess(true);
         WV.getSettings().setJavaScriptEnabled(true);
         WV.getSettings().setBuiltInZoomControls(true);
         String html = ("<html>" +
                "<head>" +
                "</head>" +
                "<body>" +
                "<img src=\"sdcard/temp.jpg\" alt=\"alternativo\" />" +
                "</body>" +
                "</html>"
                );
         WV.loadDataWithBaseURL("", html, "text/html", "utf-8", "");


     }

    }     


}
private static final int-CAMERA_REQUEST=1888;
网络视图;
按钮捕捉;
urimcapturedimageuri;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.WV=(WebView)this.findviewbyd(R.id.webView1);
this.capture=(按钮)findViewById(R.id.button1);
capture.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
字符串fileName=“temp.jpg”;
ContentValues=新的ContentValues();
value.put(MediaStore.Images.Media.TITLE,文件名);
mCapturedImageURI=getContentResolver().insert(MediaStore.Images.Media.EXTERNAL\u CONTENT\u URI,值);
Intent cameraIntent=新的Intent(MediaStore.ACTION\u IMAGE\u CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_输出,
fromFile(新文件(“SD卡/图像”));
startActivityForResult(摄像机帐篷、摄像机请求);
}
});
}
ActivityResult上受保护的void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==CAMERA\u请求){
setContentView(R.id.webView1);
WV.getSettings().setAllowFileAccess(true);
WV.getSettings().setJavaScriptEnabled(true);
WV.getSettings().SetBuilTinZoomControl(true);
字符串html=(“”+
"" +
"" +
"" +
"" +
"" +
""
);
WV.loadDataWithBaseURL(“,html,“text/html”,“utf-8”,”);
}
}     
}

只能通过putExtra()传递基本数据类型(字符串、int、float等)

这是一份可以帮助您解决这一问题的文件:


如果要传递其他数据,请使用界面

ok…..问题是什么……如果要写入SD卡,请确保在清单中包含android.permission.WRITE_EXTERNAL_存储。