2017-05-05 20 views
1

マイクを使用してXamarin.Formsアプリを開発しています。私のアプリは、Huawei P9-PhoneでAndroid 7.1(Nougat)を使用しています。私のAndroidのマニフェストが含まれています:私はマイクを使用しようとXamarin.FormsにAndroid権限のダイアログが表示されない

はまだ許可]ダイアログボックスが表示されていません。私は手動で電話の設定で許可を設定することができます(私がそうする場合は、アプリが動作します)。

マイクにアクセスするコードは次のとおりです。

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読書、開発者はアンドロイドmarshmellowので、手動でアクセス許可の要求を実装する必要があります。

+0

は、Android 6.0以来マイク – Jason

+0

にアクセスしようとしているコードを表示してください(答えはすでに質問で提供されていたので、コミュニティのwikiとして追加しました)プログラムでアクセス権を要求する必要があります。https://developer.android.com/training/permissions/requesting.html – Gusman

+0

@jasonご返信ありがとうございます。私は質問にコードを追加しました。 –

答えて

0

Android 6.0(Marshmallow、SDK> = 23)以降、実行時に権限を要求する必要があります。これは、ユーザーがアプリケーションのインストール中にすべてのアクセス許可を受け入れる必要がないようにするために導入されました。

この記事では、更新許可のワークフローについて説明します。https://blog.xamarin.com/requesting-runtime-permissions-in-android-marshmallow/

関連する問題