gpt4 book ai didi

c# - Xamarin.Forms 中未显示 Android 权限对话框

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:34 32 4
gpt4 key购买 nike

我正在使用麦克风开发 Xamarin.Forms 应用。我的应用程序在华为 P9 手机上使用 Android 7.1 (Nougat)。我的 android list 包括:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

如果我尝试使用麦克风,权限对话框仍然没有显示。我可以在手机设置中手动设置权限(如果我这样做,应用程序可以正常工作)。

访问麦克风的代码是:

this.recorder = new MediaRecorder();

this.recorder.SetAudioSource(AudioSource.Mic);
this.recorder.SetOutputFormat(OutputFormat.AmrWb);
this.recorder.SetAudioEncoder(AudioEncoder.AmrWb);
this.recorder.SetAudioSamplingRate(16000);

var directoryName = Configuration.RecordDirectory;

if (!Directory.Exists(directoryName))
{
Directory.CreateDirectory(directoryName);
}

var fileName = Configuration.RecordName + Configuration.RecordExtension;
string path = Path.Combine(Configuration.RecordDirectory, fileName);

this.recorder.SetOutputFile(path);
this.recorder.Prepare();
this.recorder.Start();

我错过了什么?

我可以在运行时强制应用程序显示对话框吗?

已解决

阅读 this blog article , 自 android marshmellow 以来,开发人员必须手动实现权限请求。

最佳答案

自 Android 6.0(Marshmallow,SDK >= 23)起,您必须在运行时请求权限。引入此功能是为了防止用户在安装应用程序期间必须接受所有权限。

本文介绍了更新后的权限工作流程:https://blog.xamarin.com/requesting-runtime-permissions-in-android-marshmallow/

(添加为社区维基,因为答案已经在问题中提供)

关于c# - Xamarin.Forms 中未显示 Android 权限对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43810057/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com