Android Webview实现图片、文件上传及启动相机功能
来源:互联网 发布:codol激光和握把数据 编辑:程序博客网 时间:2024/05/16 15:24
直接上代码,体会Webview强大的功能。
webView.setWebChromeClient(webChromeClient);
private String mCameraFilePath = null;private ValueCallback<Uri> mUploadMessage;// 表单的数据信息private final static int FILECHOOSER_RESULTCODE = 1;// 表单的结果回调</span>
private WebChromeClient webChromeClient = new WebChromeClient() {// For Android 3.0+public void openFileChooser(ValueCallback<Uri> uploadMsg) {if (uploadMsg == null) {return;}mUploadMessage = uploadMsg;Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType("image/*");activity.startActivityForResult(Intent.createChooser(i, "File Chooser"),FILECHOOSER_RESULTCODE);}// For Android 3.0+public void openFileChooser(ValueCallback uploadMsg, String acceptType) {if (uploadMsg == null) {return;}mUploadMessage = uploadMsg;Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType("*/*");activity.startActivityForResult(Intent.createChooser(i, "File Browser"),FILECHOOSER_RESULTCODE);}// For Android 4.1public void openFileChooser(ValueCallback<Uri> uploadMsg,String acceptType, String capture) {if (uploadMsg == null) {return;}mUploadMessage = uploadMsg;Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType("image/*");activity.startActivityForResult(Intent.createChooser(i, "File Chooser"),FILECHOOSER_RESULTCODE);}private Intent createDefaultOpenableIntent() {// Create and return a chooser with the default OPENABLE// actions including the camera, camcorder and sound// recorder where available.Intent i = new Intent(Intent.ACTION_GET_CONTENT);i.addCategory(Intent.CATEGORY_OPENABLE);i.setType("*/*");Intent chooser = createChooserIntent(createCameraIntent(),createCamcorderIntent(), createSoundRecorderIntent());chooser.putExtra(Intent.EXTRA_INTENT, i);return chooser;}private Intent createChooserIntent(Intent... intents) {Intent chooser = new Intent(Intent.ACTION_CHOOSER);chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intents);chooser.putExtra(Intent.EXTRA_TITLE, "File Chooser");return chooser;}private Intent createCameraIntent() {Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);File externalDataDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);System.out.println("externalDataDir:" + externalDataDir);File cameraDataDir = new File(externalDataDir.getAbsolutePath()+ File.separator + "browser-photo");cameraDataDir.mkdirs();mCameraFilePath = cameraDataDir.getAbsolutePath() + File.separator+ System.currentTimeMillis() + ".jpg";System.out.println("mcamerafilepath:" + mCameraFilePath);cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(mCameraFilePath)));return cameraIntent;}private Intent createCamcorderIntent() {return new Intent(MediaStore.ACTION_VIDEO_CAPTURE);}private Intent createSoundRecorderIntent() {return new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);}};
public void onActivityResult(int requestCode, int resultCode, Intent intent) {if (requestCode == FILECHOOSER_RESULTCODE) {if (null == mUploadMessage)return;Uri result = intent == null || resultCode != Activity.RESULT_OK ? null: intent.getData();if (result == null && intent == null&& resultCode == Activity.RESULT_OK) {File cameraFile = new File(mCameraFilePath);if (cameraFile.exists()) {result = Uri.fromFile(cameraFile);activity.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, result));}}mUploadMessage.onReceiveValue(result);mUploadMessage = null;} }
技术交流QQ群:6399844
3 0
- Android Webview实现图片、文件上传及启动相机功能
- Android Webview实现图片、文件上传及启动相机功能
- android 文件、图片上传功能实现
- Android WebView 选择图片并上传(调用相机拍照/相册/选择文件)
- android 调用相机 相册 及图片上传
- 【移动端实现】相机唤起及图片上传功能(包括微信)
- Android WebView关于图片/文件上传
- android使用webview上传文件(图片)
- Android WebView 上传图片文件有坑
- android webview 弹出图片选择器上传文件
- android项目从零开始 Android webview支持 文件上传、图片上传
- Android WebView 上传图片
- 用Swift实现iOS相机及相册图片上传
- webview上传文件,增加相机,录音机
- android实现文件上传功能
- Android Webview实现文件下载功能
- Android Webview实现文件下载功能
- Android Webview实现文件下载功能
- matlab里边的textread函数详解
- poj 3683 Priest John's Busiest Day(2-SAT)
- LeetCode OJ Isomorphic Strings
- 集合框架总结
- 92 设置css 获取css 设置innerHTML 获取innerHTML
- Android Webview实现图片、文件上传及启动相机功能
- 湘潭大学oj1215
- Android性能优化典范(一)
- Itext旋转PDF内容的方法
- Mac平台开发几个网络抓包工具(sniffer)
- GDI+使用例子
- 黑马程序员——IO流(结束篇)
- Python标准模块logging
- 93 添加class 移出class 移除/移出link或style的css规则,不常用