我想注册一个自定义文件关联并处理该文件。要处理文件,我需要文件后面的字节数组。
我通过以下途径成功注册了自定义.xmoo扩展名:

[IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault }, DataMimeType = "application/*", DataPathPattern = "*.xmoo")]
public class SplashActivity : AppCompatActivity
{
    public override void OnCreate(Bundle savedInstanceState, PersistableBundle persistentState)
    {
        base.OnCreate(savedInstanceState, persistentState);
        Android.Net.Uri fileUri = Intent.Data;

但现在,我不知道如何从uri获取字节数组。读取字节的标准方法是什么?

最佳答案

如果我没有错误地将其转换为内存流,然后再转换为字节数组,那么就可以做到这一点:
像这样的:

public byte[] UriToByteArrayConverter(Android.Net.Uri uri)
{
  Stream stream = ContentResolver.OpenInputStream(uri);
  byte[] byteArray;

  using (var memoryStream = new MemoryStream())
  {
     stream.CopyTo(memoryStream);
     byteArray = memoryStream.ToArray();
  }
    return byteArray;
}

如果不起作用,请回复。

关于c# - Xamarin.Android中有uri对象时,如何获取bytes数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53151099/

10-11 22:51
查看更多