我的 Xamarin 应用程序允许用户拍摄新图像或选择现有图像。
它在几乎所有设备上都能正常工作,但我收到了三星 Galaxy S7 用户的错误报告,在这些用户从他们的图库中选择现有图像后,意图数据似乎为空。
这是我设置意图的方式:
var intent = new Intent();
intent = new Intent(Intent.ActionGetContent);
intent.SetType("image/*");
try
{
Xamarin.Forms.Forms.Context.PackageManager.GetPackageInfo("com.android.gallery", 0);
intent.SetPackage("com.android.gallery");
}
catch { }
this.StartActivityForResult(Intent.CreateChooser(intent, "Select Picture"), SELECT_FILE);
这是我在选择图像后在 OnActivityResult 中获取 Uri 的方法:
public override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
ContentResolver resolver = this.Activity.ContentResolver;
if (resultCode == Result.Ok && requestCode == SELECT_FILE)
{
ImageUri = data.Data;
}
}
所以我很想弄清楚为什么 data.Data 只在少数几个设备上为空,即三星 Galaxy S7。