我正在尝试使用可将图像上传到html页面的webview制作一个android应用.
我想我在这里找到了解决方案:Android ACTION_IMAGE_CAPTURE Intent
但是我在将所有内容转换为Xamarin C#时遇到麻烦,在这里有什么可以帮助我的吗?我感兴趣的代码是:
File imageDirectory = new File("/sdcard/signifio");
String path = imageDirectory.toString().toLowerCase();
String name = imageDirectory.getName().toLowerCase();
ContentValues values = new ContentValues();
values.put(Media.TITLE, "Image");
values.put(Images.Media.BUCKET_ID, path.hashCode());
values.put(Images.Media.BUCKET_DISPLAY_NAME,name);
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(Media.DESCRIPTION, "Image capture by camera");
values.put("_data", "/sdcard/signifio/1111.jpg");
uri = getContentResolver().insert( Media.EXTERNAL_CONTENT_URI , values);
Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
i.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(i, 0);
更具体地说,这是我必须导入哪些类才能找到Media.TITLE,Images.Media.BUCKET_ID ….等.
解决方法:
试试Android.Provider.MediaStore
如果不在它们中,则可以使用实际的字符串,请参见the Android documentation
这是对getContentResolver Xamarin样式的调用:
this.ContentResolver.Insert(Android.Provider.MediaStore.Images.Media.ExternalContentUri, values);
对于文件的位置,请使用:
Environment.GetExternalStoragePublicDirectory(Environment.DirectoryPictures), "CameraAppDemo");
在Xamarin documentation.中有使用相机意图的秘诀