【发布时间】:2018-03-23 14:09:20
【问题描述】:
我的跨平台移动应用正在使用此代码拍照
public void TakePhoto()
{
Context context = MainActivity.Instance;
MainActivity activity = (MainActivity)context;
Intent intent = new Intent(MediaStore.ActionImageCapture);
AppCamera._file = new Java.IO.File(AppCamera._dir, String.Format("Photo_{0}.jpg", DateTime.Now.ToString("ddmmyyhhmmss")));
intent.PutExtra(MediaStore.ExtraOutput, Uri.FromFile(AppCamera._file));
activity.StartActivityForResult(intent, 1);
}
我在 Android 4.4 到 7.0 平台上安装了该应用程序,它运行良好。 但它不适用于 Android 版本为 8.1 的谷歌像素手机。
注意:使用依赖服务调用此函数。
Xamarin.Forms.DependencyService.Register<ICameraProvider>();
DependencyService.Get<ICameraProvider>().TakePhoto()
我正在使用 Visual Studio 2017,Xamarin Forms。我的项目构建属性平台目标是最新平台 Android 8.1(Oreo)。
知道问题是什么吗?
【问题讨论】:
-
你是如何申请权限的?
-
是的,权限已设置.. 用于读/写和相机
-
请记住,Android 6.0+需要主动请求权限,manifest权限仅供参考,安装时默认不授予。
-
在安装应用程序时它不要求任何许可。我在安装后设置权限,从设置->应用程序-> myapp->权限。
-
在 android mainifest 中设置目标版本覆盖 23。