将android java转换为xamarin c#

Posted

技术标签:

【中文标题】将android java转换为xamarin c#【英文标题】:translate android java to xamarin c# 【发布时间】:2013-11-29 13:30:30 【问题描述】:

我正在尝试使用可以将图像上传到 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....等等。

【问题讨论】:

【参考方案1】:

试试 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. 中有一个使用相机意图的方法

【讨论】:

很好...谢谢。我找不到它们,但我改用字符串。 getContentResolver().insert 函数呢,Media.EXTERNAL_CONTENT_URI 在任何地方都找不到它们...... 所以...我还有一个问题。我试图找到一个地方来存储相机拍摄的图像。它必须是我的应用程序和相机应用程序都有 acecs 的地方。我在想。 Environment.getExternalStoragePublicDirectory 但我不知道在 xamarin 中的哪里可以找到它,或者在另一个更好的地方放置它? :) 你能再帮我一次吗?谢谢...

以上是关于将android java转换为xamarin c#的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin C# Android - 将 .3gpp 音频转换为字节并发送到 parseObject

如何在 C#/Xamarin 中使用带有来自 android 钥匙串的私钥的 X.509 证书?

将 Xamarin.Forms.Color 转换为平台特定颜色

Realm Java作为Native Android Library的依赖绑定到Xamarin

gles2 动态壁纸转换为 c# (xamarin) 符合错误“...mono.android.TypeManager 无法应用于

在Xamarin.Android中将Keycode转换为char